diff options
| author | Arnaud Simon <arnaudsimon@apache.org> | 2008-02-21 11:07:36 +0000 |
|---|---|---|
| committer | Arnaud Simon <arnaudsimon@apache.org> | 2008-02-21 11:07:36 +0000 |
| commit | 2c678382362404aa64fa6fd77d7514ec58f19119 (patch) | |
| tree | ba82efac5a020f8c21f56d42e88f3321ca3988a5 /java/common | |
| parent | cc55340d5d7cf74d045f5f7608aa03c5fa7a4675 (diff) | |
| download | qpid-python-2c678382362404aa64fa6fd77d7514ec58f19119.tar.gz | |
added flag for tagging header without a payload
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@629747 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
3 files changed, 13 insertions, 5 deletions
diff --git a/java/common/src/main/java/org/apache/qpidity/transport/Header.java b/java/common/src/main/java/org/apache/qpidity/transport/Header.java index b5bb428c0a..ae11bb0c69 100644 --- a/java/common/src/main/java/org/apache/qpidity/transport/Header.java +++ b/java/common/src/main/java/org/apache/qpidity/transport/Header.java @@ -36,10 +36,12 @@ public class Header implements ProtocolEvent { private final List<Struct> structs; private ByteBuffer _buf; + private boolean _noPayload; - public Header(List<Struct> structs) + public Header(List<Struct> structs, boolean lastframe) { this.structs = structs; + _noPayload= lastframe; } public List<Struct> getStructs() @@ -79,6 +81,12 @@ public class Header implements ProtocolEvent { delegate.header(context, this); } + public boolean hasNoPayload() + { + return _noPayload; + } + + public String toString() { StringBuffer str = new StringBuffer(); diff --git a/java/common/src/main/java/org/apache/qpidity/transport/Session.java b/java/common/src/main/java/org/apache/qpidity/transport/Session.java index 9f0af7cfa1..e4f4af95a5 100644 --- a/java/common/src/main/java/org/apache/qpidity/transport/Session.java +++ b/java/common/src/main/java/org/apache/qpidity/transport/Session.java @@ -237,7 +237,7 @@ public class Session extends Invoker public Header header(List<Struct> structs) { - Header res = new Header(structs); + Header res = new Header(structs, false); header(res); return res; } diff --git a/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java b/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java index 1d501a7c6d..5c35596fd8 100644 --- a/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java +++ b/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java @@ -154,11 +154,11 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate if (frame.isLastFrame()) { clearSegment(frame); - emit(frame, decode(frame.getType(), segment)); + emit(frame, decode(frame, frame.getType(), segment)); } } - private ProtocolEvent decode(byte type, List<ByteBuffer> segment) + private ProtocolEvent decode(Frame frame, byte type, List<ByteBuffer> segment) { FragmentDecoder dec = new FragmentDecoder(segment.iterator()); @@ -175,7 +175,7 @@ public class Assembler implements Receiver<NetworkEvent>, NetworkDelegate { structs.add(dec.readLongStruct()); } - return new Header(structs); + return new Header(structs,frame.isLastFrame() && frame.isLastSegment()); default: throw new IllegalStateException("unknown frame type: " + type); } |
