From 6b79c1e50a5f25a16fc61b6bde37c257584b8ca2 Mon Sep 17 00:00:00 2001 From: Arnaud Simon Date: Thu, 21 Feb 2008 11:07:36 +0000 Subject: added flag for tagging header without a payload git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@629747 13f79535-47bb-0310-9956-ffa450edef68 --- .../src/main/java/org/apache/qpidity/transport/Header.java | 10 +++++++++- .../src/main/java/org/apache/qpidity/transport/Session.java | 2 +- .../java/org/apache/qpidity/transport/network/Assembler.java | 6 +++--- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'qpid/java/common/src') diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/Header.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Header.java index b5bb428c0a..ae11bb0c69 100644 --- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/Header.java +++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Header.java @@ -36,10 +36,12 @@ public class Header implements ProtocolEvent { private final List structs; private ByteBuffer _buf; + private boolean _noPayload; - public Header(List structs) + public Header(List structs, boolean lastframe) { this.structs = structs; + _noPayload= lastframe; } public List 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/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java index 9f0af7cfa1..e4f4af95a5 100644 --- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java +++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/Session.java @@ -237,7 +237,7 @@ public class Session extends Invoker public Header header(List structs) { - Header res = new Header(structs); + Header res = new Header(structs, false); header(res); return res; } diff --git a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java index 1d501a7c6d..5c35596fd8 100644 --- a/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java +++ b/qpid/java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java @@ -154,11 +154,11 @@ public class Assembler implements Receiver, 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 segment) + private ProtocolEvent decode(Frame frame, byte type, List segment) { FragmentDecoder dec = new FragmentDecoder(segment.iterator()); @@ -175,7 +175,7 @@ public class Assembler implements Receiver, 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); } -- cgit v1.2.1