diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2007-01-16 17:02:08 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2007-01-16 17:02:08 +0000 |
| commit | 72808053545e0723bf6dbbc0e738097d5ea13e28 (patch) | |
| tree | ea75168f367575aa4da1ecf1e9444a962eabf42f | |
| parent | 1f7b0e108823f2c8078d05e339c68696c4aaf780 (diff) | |
| download | qpid-python-72808053545e0723bf6dbbc0e738097d5ea13e28.tar.gz | |
added request/response factories to AMQDataBlockDecoder
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@496768 13f79535-47bb-0310-9956-ffa450edef68
4 files changed, 15 insertions, 2 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java index c9b683cc36..62699331e9 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQDataBlockDecoder.java @@ -36,7 +36,16 @@ public class AMQDataBlockDecoder public AMQDataBlockDecoder() { - _supportedBodies.put(new Byte(AMQMethodBody.TYPE), AMQMethodBodyFactory.getInstance()); + _supportedBodies.put(new Byte(AMQRequestBody.TYPE), new BodyFactory() { + public AMQBody createBody(ByteBuffer in) { + return new AMQRequestBody(); + } + }); + _supportedBodies.put(new Byte(AMQResponseBody.TYPE), new BodyFactory() { + public AMQBody createBody(ByteBuffer in) { + return new AMQResponseBody(); + } + }); _supportedBodies.put(new Byte(HeartbeatBody.TYPE), new HeartbeatBodyFactory()); } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java index 8c17befa36..3dcbe926fe 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBodyFactory.java @@ -39,7 +39,7 @@ public class AMQMethodBodyFactory implements BodyFactory _log.debug("Creating method body factory"); } - public AMQBody createBody(ByteBuffer in) throws AMQFrameDecodingException + public AMQMethodBody createBody(ByteBuffer in) throws AMQFrameDecodingException { // AMQP version change: MethodBodyDecoderRegistry is obsolete, since all the XML // segments generated together are now handled by MainRegistry. The Cluster class, diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java index 623b2356ae..828941ed03 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQRequestBody.java @@ -73,6 +73,8 @@ public class AMQRequestBody extends AMQBody requestId = EncodingUtils.readLong(buffer); responseMark = EncodingUtils.readLong(buffer); int reserved = EncodingUtils.readInteger(buffer); // reserved, throw away + AMQMethodBodyFactory factory = AMQMethodBodyFactory.getInstance(); + methodPayload = factory.createBody(buffer); methodPayload.populateFromBuffer(buffer, size - 8 - 8 - 4); } diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java index 2b0fc97b1b..412b65cc01 100644 --- a/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java +++ b/java/common/src/main/java/org/apache/qpid/framing/AMQResponseBody.java @@ -75,6 +75,8 @@ public class AMQResponseBody extends AMQBody requestId = EncodingUtils.readLong(buffer); // XXX batchOffset = EncodingUtils.readInteger(buffer); + AMQMethodBodyFactory factory = AMQMethodBodyFactory.getInstance(); + methodPayload = factory.createBody(buffer); methodPayload.populateFromBuffer(buffer, size - 8 - 8 - 4); } |
