mirror of
https://gitee.com/willfree/min-dev-java.git
synced 2026-06-17 23:00:24 +08:00
code review: LinkService
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
package logicface;
|
||||
|
||||
import component.ComponentException;
|
||||
import component.LpPacketFragmentId;
|
||||
import component.LpPacketFragmentNum;
|
||||
import component.LpPacketFragmentSeq;
|
||||
import encoding.*;
|
||||
import mgmt.MgmtException;
|
||||
import packet.*;
|
||||
import util.ByteHelper;
|
||||
|
||||
@@ -32,6 +34,7 @@ public class LinkService {
|
||||
lpPacket.lpPacketHeader.setLpPacketFragmentNum(new LpPacketFragmentNum(Long.MAX_VALUE));
|
||||
|
||||
byte[] buf=new byte[Encoder.MaxPacketSize];
|
||||
lpPacket.setValue(buf);
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize+1000),new SizeT(0))){
|
||||
throw new LogicFaceException("LinkService.calculateLpPacketHeadSize: encoderReset error");
|
||||
@@ -120,8 +123,8 @@ public class LinkService {
|
||||
try {
|
||||
int fragmentLen = this.mtu - this.lpPacketHeadSize - 10;
|
||||
int startIndex = 0;
|
||||
int fragmentSeq = 0;
|
||||
int fragmentNum = bufLen / fragmentLen;
|
||||
long fragmentSeq = 0L;
|
||||
long fragmentNum = bufLen / fragmentLen;
|
||||
if (bufLen % fragmentLen != 0) {
|
||||
fragmentNum++;
|
||||
}
|
||||
@@ -143,23 +146,38 @@ public class LinkService {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean sendPacket(IEncodingAble packet) throws LogicFaceException {
|
||||
try {
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
return false;
|
||||
}
|
||||
int bufLen=packet.wireEncode(encoder);
|
||||
byte[] buf=encoder.getBuffer();
|
||||
return this.sendByteBuffer(buf,bufLen);
|
||||
} catch (EncoderException | PacketException | LogicFaceException | MgmtException | ComponentException e) {
|
||||
throw new LogicFaceException("LinkService.sendPacket: "+e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送一个兴趣包
|
||||
* @param interest
|
||||
* @return
|
||||
*/
|
||||
public boolean sendInterest(Interest interest) throws LogicFaceException {
|
||||
try {
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
return false;
|
||||
}
|
||||
int bufLen=interest.wireEncode(encoder);
|
||||
byte[] buf=encoder.getBuffer();
|
||||
return this.sendByteBuffer(buf,bufLen);
|
||||
} catch (EncoderException | PacketException e) {
|
||||
throw new LogicFaceException("LinkService.sendInterest: "+e.getMessage());
|
||||
}
|
||||
// try {
|
||||
// Encoder encoder=new Encoder();
|
||||
// if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
// return false;
|
||||
// }
|
||||
// int bufLen=interest.wireEncode(encoder);
|
||||
// byte[] buf=encoder.getBuffer();
|
||||
// return this.sendByteBuffer(buf,bufLen);
|
||||
// } catch (EncoderException | PacketException e) {
|
||||
// throw new LogicFaceException("LinkService.sendInterest: "+e.getMessage());
|
||||
// }
|
||||
return sendPacket(interest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -168,17 +186,18 @@ public class LinkService {
|
||||
* @return
|
||||
*/
|
||||
public boolean sendData(Data data) throws LogicFaceException {
|
||||
try {
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
return false;
|
||||
}
|
||||
int bufLen=data.wireEncode(encoder);
|
||||
byte[] buf=encoder.getBuffer();
|
||||
return this.sendByteBuffer(buf,bufLen);
|
||||
} catch (EncoderException | PacketException e) {
|
||||
throw new LogicFaceException("LinkService.sendData: "+e.getMessage());
|
||||
}
|
||||
// try {
|
||||
// Encoder encoder=new Encoder();
|
||||
// if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
// return false;
|
||||
// }
|
||||
// int bufLen=data.wireEncode(encoder);
|
||||
// byte[] buf=encoder.getBuffer();
|
||||
// return this.sendByteBuffer(buf,bufLen);
|
||||
// } catch (EncoderException | PacketException e) {
|
||||
// throw new LogicFaceException("LinkService.sendData: "+e.getMessage());
|
||||
// }
|
||||
return sendPacket(data);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -187,17 +206,18 @@ public class LinkService {
|
||||
* @return
|
||||
*/
|
||||
public boolean sendCPacket(CPacket cPacket) throws LogicFaceException {
|
||||
try {
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
return false;
|
||||
}
|
||||
int bufLen=cPacket.wireEncode(encoder);
|
||||
byte[] buf=encoder.getBuffer();
|
||||
return this.sendByteBuffer(buf,bufLen);
|
||||
} catch (EncoderException | PacketException e) {
|
||||
throw new LogicFaceException("LinkService.sendCPacket: "+e.getMessage());
|
||||
}
|
||||
// try {
|
||||
// Encoder encoder=new Encoder();
|
||||
// if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
// return false;
|
||||
// }
|
||||
// int bufLen=cPacket.wireEncode(encoder);
|
||||
// byte[] buf=encoder.getBuffer();
|
||||
// return this.sendByteBuffer(buf,bufLen);
|
||||
// } catch (EncoderException | PacketException e) {
|
||||
// throw new LogicFaceException("LinkService.sendCPacket: "+e.getMessage());
|
||||
// }
|
||||
return sendPacket(cPacket);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -206,16 +226,17 @@ public class LinkService {
|
||||
* @return
|
||||
*/
|
||||
public boolean sendMINPacket(MINPacket minPacket) throws LogicFaceException {
|
||||
try {
|
||||
Encoder encoder=new Encoder();
|
||||
if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
return false;
|
||||
}
|
||||
int bufLen=minPacket.wireEncode(encoder);
|
||||
byte[] buf=encoder.getBuffer();
|
||||
return this.sendByteBuffer(buf,bufLen);
|
||||
} catch (EncoderException | PacketException e) {
|
||||
throw new LogicFaceException("LinkService.sendMINPacket: "+e.getMessage());
|
||||
}
|
||||
// try {
|
||||
// Encoder encoder=new Encoder();
|
||||
// if(!encoder.encoderReset(new SizeT(Encoder.MaxPacketSize),new SizeT(0))){
|
||||
// return false;
|
||||
// }
|
||||
// int bufLen=minPacket.wireEncode(encoder);
|
||||
// byte[] buf=encoder.getBuffer();
|
||||
// return this.sendByteBuffer(buf,bufLen);
|
||||
// } catch (EncoderException | PacketException e) {
|
||||
// throw new LogicFaceException("LinkService.sendMINPacket: "+e.getMessage());
|
||||
// }
|
||||
return sendPacket(minPacket);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user