diff --git a/src/main/java/logicface/LinkService.java b/src/main/java/logicface/LinkService.java index 7845583..a90c4df 100644 --- a/src/main/java/logicface/LinkService.java +++ b/src/main/java/logicface/LinkService.java @@ -4,10 +4,7 @@ import component.LpPacketFragmentId; import component.LpPacketFragmentNum; import component.LpPacketFragmentSeq; import encoding.*; -import packet.Interest; -import packet.LpPacket; -import packet.MINPacket; -import packet.PacketException; +import packet.*; import util.ByteHelper; /* @@ -156,5 +153,60 @@ public class LinkService { } } - + /** + * 发送一个数据包 + * @param data + * @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()); + } + } + + /** + * 发送一个普通推送式网络包 + * @param cPacket + * @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()); + } + } + + /** + * 发送一个MIN网络包 + * @param minPacket + * @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()); + } + } } diff --git a/src/main/java/logicface/LogicFace.java b/src/main/java/logicface/LogicFace.java index 911e4b9..18f9a98 100644 --- a/src/main/java/logicface/LogicFace.java +++ b/src/main/java/logicface/LogicFace.java @@ -72,7 +72,9 @@ public class LogicFace { * 从 LogicFace 中接收一个网络包 * @return 多标识网络包 */ -// public MINPacket ReceivePacket(){ -// return this.linkService -// } + public MINPacket ReceivePacket() throws LogicFaceException { + return this.linkService.receivePacket(); + } + + }