summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorArnaud Simon <arnaudsimon@apache.org>2008-02-21 11:07:36 +0000
committerArnaud Simon <arnaudsimon@apache.org>2008-02-21 11:07:36 +0000
commit2c678382362404aa64fa6fd77d7514ec58f19119 (patch)
treeba82efac5a020f8c21f56d42e88f3321ca3988a5 /java/common
parentcc55340d5d7cf74d045f5f7608aa03c5fa7a4675 (diff)
downloadqpid-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')
-rw-r--r--java/common/src/main/java/org/apache/qpidity/transport/Header.java10
-rw-r--r--java/common/src/main/java/org/apache/qpidity/transport/Session.java2
-rw-r--r--java/common/src/main/java/org/apache/qpidity/transport/network/Assembler.java6
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);
}