diff options
| author | Rafael H. Schloming <rhs@apache.org> | 2007-08-03 04:25:25 +0000 |
|---|---|---|
| committer | Rafael H. Schloming <rhs@apache.org> | 2007-08-03 04:25:25 +0000 |
| commit | 7bf9aa8b504893545c44969dcb0b6e8d5876d606 (patch) | |
| tree | dc543954042b0c959549606354d194deaeb07a07 /java/common | |
| parent | 043e8c35429e7dbcf6cfb63206f7980d1afeccdd (diff) | |
| download | qpid-python-7bf9aa8b504893545c44969dcb0b6e8d5876d606.tar.gz | |
added amqp.0-10-preview.xml and switched the qpidity codegen over to use it
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@562325 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
12 files changed, 79 insertions, 49 deletions
diff --git a/java/common/generate b/java/common/generate index f3464e7310..78092d4a04 100755 --- a/java/common/generate +++ b/java/common/generate @@ -54,7 +54,8 @@ TYPES = { "timestamp": "long", "content": "String", "uuid": "UUID", - "rfc1982-long-set": "Range<Long>[]" + "rfc1982-long-set": "Range<Long>[]", + "long-struct": "Struct" } def camel(offset, *args): diff --git a/java/common/pom.xml b/java/common/pom.xml index d2276ddb2e..f30d425072 100644 --- a/java/common/pom.xml +++ b/java/common/pom.xml @@ -88,7 +88,7 @@ <param>${basedir}/generate</param> <param>${generated.path}</param> <param>org.apache.qpidity</param> - <param>${specs.dir}/amqp-transitional.0-10.xml</param> + <param>${specs.dir}/amqp.0-10-preview.xml</param> </params> </configuration> <goals> diff --git a/java/common/src/main/java/org/apache/qpidity/AbstractDecoder.java b/java/common/src/main/java/org/apache/qpidity/AbstractDecoder.java index 42da09f2d9..ee350ac343 100644 --- a/java/common/src/main/java/org/apache/qpidity/AbstractDecoder.java +++ b/java/common/src/main/java/org/apache/qpidity/AbstractDecoder.java @@ -35,6 +35,13 @@ import static org.apache.qpidity.Functions.*; abstract class AbstractDecoder implements Decoder { + private final StructFactory factory; + + protected AbstractDecoder(StructFactory factory) + { + this.factory = factory; + } + protected abstract byte get(); protected abstract void get(byte[] bytes); @@ -146,4 +153,11 @@ abstract class AbstractDecoder implements Decoder throw new Error("Deprecated"); } + public Struct readLongStruct() + { + long size = readLong(); + int type = readShort(); + return factory.create(type, this); + } + } diff --git a/java/common/src/main/java/org/apache/qpidity/AbstractEncoder.java b/java/common/src/main/java/org/apache/qpidity/AbstractEncoder.java index 5ca68fe564..deca409788 100644 --- a/java/common/src/main/java/org/apache/qpidity/AbstractEncoder.java +++ b/java/common/src/main/java/org/apache/qpidity/AbstractEncoder.java @@ -155,6 +155,16 @@ abstract class AbstractEncoder implements Encoder throw new Error("Deprecated"); } + public void writeLongStruct(Struct s) + { + SizeEncoder sizer = new SizeEncoder(); + sizer.writeShort(s.getEncodedType()); + s.write(sizer); + writeLong(sizer.getSize()); + writeShort(s.getEncodedType()); + s.write(this); + } + public void flush() { flushBits(); diff --git a/java/common/src/main/java/org/apache/qpidity/BBDecoder.java b/java/common/src/main/java/org/apache/qpidity/BBDecoder.java index 08ac03113f..49255de4be 100644 --- a/java/common/src/main/java/org/apache/qpidity/BBDecoder.java +++ b/java/common/src/main/java/org/apache/qpidity/BBDecoder.java @@ -34,8 +34,9 @@ class BBDecoder extends AbstractDecoder private final ByteBuffer in; - public BBDecoder(ByteBuffer in) + public BBDecoder(StructFactory factory, ByteBuffer in) { + super(factory); this.in = in; } diff --git a/java/common/src/main/java/org/apache/qpidity/CommonSessionDelegate.java b/java/common/src/main/java/org/apache/qpidity/CommonSessionDelegate.java index 80d54ef173..7ae9a99fd2 100644 --- a/java/common/src/main/java/org/apache/qpidity/CommonSessionDelegate.java +++ b/java/common/src/main/java/org/apache/qpidity/CommonSessionDelegate.java @@ -42,48 +42,43 @@ public class CommonSessionDelegate extends Delegate<Session> @Override public void sessionResume(Session session, SessionResume struct) {} - @Override public void sessionPing(Session session, SessionPing struct) {} - - @Override public void sessionPong(Session session, SessionPong struct) {} - @Override public void sessionSuspend(Session session, SessionSuspend struct) {} @Override public void sessionDetached(Session session, SessionDetached struct) {} - @Override - public void messageTransfer(Session context, MessageTransfer struct) - { - StreamingMessageListener l = context.messagListeners.get(struct.getDestination()); - l.messageTransfer(struct.getDestination(),new Option[0]); - } - - // --------------------------------------------------------------- - // Non generated methods - but would like if they are also generated. - // These methods should be called from Body and Header Handlers. - // If these methods are generated as part of the delegate then - // I can call these methods from the BodyHandler and HeaderHandler - // in a generic way - - - // I have used destination to indicate my intent of receiving - // some form of correlation to know which consumer this data belongs to. - // It can be anything as long as I can make the right correlation - // ---------------------------------------------------------------- - public void data(Session context,String destination,byte[] src) throws QpidException - { - StreamingMessageListener l = context.messagListeners.get(destination); - l.data(src); - } - - public void endData(Session context,String destination) throws QpidException - { - StreamingMessageListener l = context.messagListeners.get(destination); - l.endData(); - } - - public void messageHeaders(Session context,String destination,Header... headers) throws QpidException - { - StreamingMessageListener l = context.messagListeners.get(destination); - l.endData(); - } + @Override public void messageTransfer(Session context, MessageTransfer struct) + { + StreamingMessageListener l = context.messagListeners.get(struct.getDestination()); + l.messageTransfer(struct.getDestination(),new Option[0]); + } + + // --------------------------------------------------------------- + // Non generated methods - but would like if they are also generated. + // These methods should be called from Body and Header Handlers. + // If these methods are generated as part of the delegate then + // I can call these methods from the BodyHandler and HeaderHandler + // in a generic way + + // I have used destination to indicate my intent of receiving + // some form of correlation to know which consumer this data belongs to. + // It can be anything as long as I can make the right correlation + // ---------------------------------------------------------------- + public void data(Session context,String destination,byte[] src) throws QpidException + { + StreamingMessageListener l = context.messagListeners.get(destination); + l.data(src); + } + + public void endData(Session context,String destination) throws QpidException + { + StreamingMessageListener l = context.messagListeners.get(destination); + l.endData(); + } + + public void messageHeaders(Session context,String destination,Header... headers) throws QpidException + { + StreamingMessageListener l = context.messagListeners.get(destination); + l.endData(); + } + } diff --git a/java/common/src/main/java/org/apache/qpidity/Decoder.java b/java/common/src/main/java/org/apache/qpidity/Decoder.java index 26191fa7ba..0a869baab7 100644 --- a/java/common/src/main/java/org/apache/qpidity/Decoder.java +++ b/java/common/src/main/java/org/apache/qpidity/Decoder.java @@ -49,4 +49,6 @@ public interface Decoder String readContent(); + Struct readLongStruct(); + } diff --git a/java/common/src/main/java/org/apache/qpidity/Encoder.java b/java/common/src/main/java/org/apache/qpidity/Encoder.java index 954b690dc2..c25b96e462 100644 --- a/java/common/src/main/java/org/apache/qpidity/Encoder.java +++ b/java/common/src/main/java/org/apache/qpidity/Encoder.java @@ -51,4 +51,6 @@ public interface Encoder void flush(); + void writeLongStruct(Struct s); + } diff --git a/java/common/src/main/java/org/apache/qpidity/FragmentDecoder.java b/java/common/src/main/java/org/apache/qpidity/FragmentDecoder.java index dcf1c19c38..64ee4ef6ce 100644 --- a/java/common/src/main/java/org/apache/qpidity/FragmentDecoder.java +++ b/java/common/src/main/java/org/apache/qpidity/FragmentDecoder.java @@ -40,8 +40,9 @@ class FragmentDecoder extends AbstractDecoder private final Iterator<ByteBuffer> fragments; private ByteBuffer current; - public FragmentDecoder(Iterator<ByteBuffer> fragments) + public FragmentDecoder(StructFactory factory, Iterator<ByteBuffer> fragments) { + super(factory); this.fragments = fragments; this.current = null; } diff --git a/java/common/src/main/java/org/apache/qpidity/Method.java b/java/common/src/main/java/org/apache/qpidity/Method.java index a3926b572e..ab8825743c 100644 --- a/java/common/src/main/java/org/apache/qpidity/Method.java +++ b/java/common/src/main/java/org/apache/qpidity/Method.java @@ -27,9 +27,8 @@ package org.apache.qpidity; * @author Rafael H. Schloming */ -interface Method extends Struct { - - int getEncodedType(); +interface Method extends Struct +{ byte getEncodedTrack(); diff --git a/java/common/src/main/java/org/apache/qpidity/MethodDispatcher.java b/java/common/src/main/java/org/apache/qpidity/MethodDispatcher.java index 8fbc6f547d..b4545705ea 100644 --- a/java/common/src/main/java/org/apache/qpidity/MethodDispatcher.java +++ b/java/common/src/main/java/org/apache/qpidity/MethodDispatcher.java @@ -47,7 +47,7 @@ class MethodDispatcher<C> implements Handler<Event<C,Segment>> { System.out.println("got method segment:\n " + event.target); Iterator<ByteBuffer> fragments = event.target.getFragments(); - Decoder dec = new FragmentDecoder(fragments); + Decoder dec = new FragmentDecoder(factory, fragments); int type = (int) dec.readLong(); Struct struct = factory.create(type, dec); Delegate<C> delegate = resolver.resolve(struct); diff --git a/java/common/src/main/java/org/apache/qpidity/Struct.java b/java/common/src/main/java/org/apache/qpidity/Struct.java index 6d9913b042..63b0db2c12 100644 --- a/java/common/src/main/java/org/apache/qpidity/Struct.java +++ b/java/common/src/main/java/org/apache/qpidity/Struct.java @@ -27,4 +27,9 @@ package org.apache.qpidity; * @author Rafael H. Schloming */ -interface Struct extends Delegator, Writable {} +interface Struct extends Delegator, Writable +{ + + int getEncodedType(); + +} |
