You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ro...@apache.org on 2013/09/29 19:45:25 UTC

svn commit: r1527366 [28/29] - in /qpid/trunk/qpid/java: broker-core/src/main/java/org/apache/qpid/server/logging/messages/ common/src/main/java/org/apache/qpid/filter/selector/ common/src/main/java/org/apache/qpid/framing/ common/src/main/java/org/apa...

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetach.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetach.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetach.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetach.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,154 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionDetach extends Method {
+
+    public static final int TYPE = 515;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L2;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private byte[] name;
+
+
+    public SessionDetach() {}
+
+
+    public SessionDetach(byte[] name, Option ... _options) {
+        if(name != null) {
+            setName(name);
+        }
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionDetach(context, this);
+    }
+
+
+    public final boolean hasName() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionDetach clearName() {
+        packing_flags &= ~256;
+        this.name = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final byte[] getName() {
+        return name;
+    }
+
+    public final SessionDetach setName(byte[] value) {
+        this.name = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionDetach name(byte[] value) {
+        return setName(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeVbin16(this.name);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.name = dec.readVbin16();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("name", getName());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetachCode.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetachCode.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetachCode.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetachCode.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,56 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+public enum SessionDetachCode {
+
+    NORMAL((short) 0),
+    SESSION_BUSY((short) 1),
+    TRANSPORT_BUSY((short) 2),
+    NOT_ATTACHED((short) 3),
+    UNKNOWN_IDS((short) 4);
+
+    private final short value;
+
+    SessionDetachCode(short value)
+    {
+        this.value = value;
+    }
+
+    public short getValue()
+    {
+        return value;
+    }
+
+    public static SessionDetachCode get(short value)
+    {
+        switch (value)
+        {
+        case (short) 0: return NORMAL;
+        case (short) 1: return SESSION_BUSY;
+        case (short) 2: return TRANSPORT_BUSY;
+        case (short) 3: return NOT_ATTACHED;
+        case (short) 4: return UNKNOWN_IDS;
+        default: throw new IllegalArgumentException("no such value: " + value);
+        }
+    }
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetached.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetached.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetached.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionDetached.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,196 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionDetached extends Method {
+
+    public static final int TYPE = 516;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L2;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private byte[] name;
+    private SessionDetachCode code;
+
+
+    public SessionDetached() {}
+
+
+    public SessionDetached(byte[] name, SessionDetachCode code, Option ... _options) {
+        if(name != null) {
+            setName(name);
+        }
+        if(code != null) {
+            setCode(code);
+        }
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionDetached(context, this);
+    }
+
+
+    public final boolean hasName() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionDetached clearName() {
+        packing_flags &= ~256;
+        this.name = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final byte[] getName() {
+        return name;
+    }
+
+    public final SessionDetached setName(byte[] value) {
+        this.name = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionDetached name(byte[] value) {
+        return setName(value);
+    }
+
+    public final boolean hasCode() {
+        return (packing_flags & 512) != 0;
+    }
+
+    public final SessionDetached clearCode() {
+        packing_flags &= ~512;
+        this.code = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionDetachCode getCode() {
+        return code;
+    }
+
+    public final SessionDetached setCode(SessionDetachCode value) {
+        this.code = value;
+        packing_flags |= 512;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionDetached code(SessionDetachCode value) {
+        return setCode(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeVbin16(this.name);
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            enc.writeUint8(this.code.getValue());
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.name = dec.readVbin16();
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            this.code = SessionDetachCode.get(dec.readUint8());
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("name", getName());
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            result.put("code", getCode());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionExpected.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionExpected.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionExpected.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionExpected.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,196 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionExpected extends Method {
+
+    public static final int TYPE = 520;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private RangeSet commands;
+    private java.util.List<Object> fragments;
+
+
+    public SessionExpected() {}
+
+
+    public SessionExpected(RangeSet commands, java.util.List<Object> fragments, Option ... _options) {
+        if(commands != null) {
+            setCommands(commands);
+        }
+        if(fragments != null) {
+            setFragments(fragments);
+        }
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionExpected(context, this);
+    }
+
+
+    public final boolean hasCommands() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionExpected clearCommands() {
+        packing_flags &= ~256;
+        this.commands = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final RangeSet getCommands() {
+        return commands;
+    }
+
+    public final SessionExpected setCommands(RangeSet value) {
+        this.commands = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionExpected commands(RangeSet value) {
+        return setCommands(value);
+    }
+
+    public final boolean hasFragments() {
+        return (packing_flags & 512) != 0;
+    }
+
+    public final SessionExpected clearFragments() {
+        packing_flags &= ~512;
+        this.fragments = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final java.util.List<Object> getFragments() {
+        return fragments;
+    }
+
+    public final SessionExpected setFragments(java.util.List<Object> value) {
+        this.fragments = value;
+        packing_flags |= 512;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionExpected fragments(java.util.List<Object> value) {
+        return setFragments(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeSequenceSet(this.commands);
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            enc.writeArray(this.fragments);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.commands = dec.readSequenceSet();
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            this.fragments = dec.readArray();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("commands", getCommands());
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            result.put("fragments", getFragments());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionFlush.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionFlush.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionFlush.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionFlush.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,229 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionFlush extends Method {
+
+    public static final int TYPE = 524;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+
+
+    public SessionFlush() {}
+
+
+    public SessionFlush(Option ... _options) {
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case EXPECTED: packing_flags |= 256; break;
+            case CONFIRMED: packing_flags |= 512; break;
+            case COMPLETED: packing_flags |= 1024; break;
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionFlush(context, this);
+    }
+
+
+    public final boolean hasExpected() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionFlush clearExpected() {
+        packing_flags &= ~256;
+
+        setDirty(true);
+        return this;
+    }
+
+    public final boolean getExpected() {
+        return hasExpected();
+    }
+
+    public final SessionFlush setExpected(boolean value) {
+
+        if (value)
+        {
+            packing_flags |= 256;
+        }
+        else
+        {
+            packing_flags &= ~256;
+        }
+
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionFlush expected(boolean value) {
+        return setExpected(value);
+    }
+
+    public final boolean hasConfirmed() {
+        return (packing_flags & 512) != 0;
+    }
+
+    public final SessionFlush clearConfirmed() {
+        packing_flags &= ~512;
+
+        setDirty(true);
+        return this;
+    }
+
+    public final boolean getConfirmed() {
+        return hasConfirmed();
+    }
+
+    public final SessionFlush setConfirmed(boolean value) {
+
+        if (value)
+        {
+            packing_flags |= 512;
+        }
+        else
+        {
+            packing_flags &= ~512;
+        }
+
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionFlush confirmed(boolean value) {
+        return setConfirmed(value);
+    }
+
+    public final boolean hasCompleted() {
+        return (packing_flags & 1024) != 0;
+    }
+
+    public final SessionFlush clearCompleted() {
+        packing_flags &= ~1024;
+
+        setDirty(true);
+        return this;
+    }
+
+    public final boolean getCompleted() {
+        return hasCompleted();
+    }
+
+    public final SessionFlush setCompleted(boolean value) {
+
+        if (value)
+        {
+            packing_flags |= 1024;
+        }
+        else
+        {
+            packing_flags &= ~1024;
+        }
+
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionFlush completed(boolean value) {
+        return setCompleted(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("expected", getExpected());
+        }
+        if ((packing_flags & 512) != 0)
+        {
+            result.put("confirmed", getConfirmed());
+        }
+        if ((packing_flags & 1024) != 0)
+        {
+            result.put("completed", getCompleted());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionGap.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionGap.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionGap.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionGap.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,154 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionGap extends Method {
+
+    public static final int TYPE = 525;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private RangeSet commands;
+
+
+    public SessionGap() {}
+
+
+    public SessionGap(RangeSet commands, Option ... _options) {
+        if(commands != null) {
+            setCommands(commands);
+        }
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionGap(context, this);
+    }
+
+
+    public final boolean hasCommands() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionGap clearCommands() {
+        packing_flags &= ~256;
+        this.commands = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final RangeSet getCommands() {
+        return commands;
+    }
+
+    public final SessionGap setCommands(RangeSet value) {
+        this.commands = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionGap commands(RangeSet value) {
+        return setCommands(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeSequenceSet(this.commands);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.commands = dec.readSequenceSet();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("commands", getCommands());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionHeader.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionHeader.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionHeader.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionHeader.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,145 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+
+
+public final class SessionHeader extends Struct {
+
+    public static final int TYPE = -1;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 1;
+    }
+
+    public final int getPackWidth() {
+        return 1;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return -1;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private byte packing_flags = 0;
+
+
+    public SessionHeader() {}
+
+
+    public SessionHeader(Option ... _options) {
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: packing_flags |= 1; break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+
+
+
+    public final boolean hasSync() {
+        return (packing_flags & 1) != 0;
+    }
+
+    public final SessionHeader clearSync() {
+        packing_flags &= ~1;
+
+        setDirty(true);
+        return this;
+    }
+
+    public final boolean getSync() {
+        return hasSync();
+    }
+
+    public final SessionHeader setSync(boolean value) {
+
+        if (value)
+        {
+            packing_flags |= 1;
+        }
+        else
+        {
+            packing_flags &= ~1;
+        }
+
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionHeader sync(boolean value) {
+        return setSync(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint8(packing_flags);
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (byte) dec.readUint8();
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 1) != 0)
+        {
+            result.put("sync", getSync());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionInvoker.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionInvoker.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionInvoker.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionInvoker.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,236 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.Map;
+
+public abstract class SessionInvoker {
+
+    final void sessionAttach(byte[] name, Option ... _options) {
+        invoke(new SessionAttach(name, _options));
+    }
+
+    final void sessionAttached(byte[] name, Option ... _options) {
+        invoke(new SessionAttached(name, _options));
+    }
+
+    final void sessionDetach(byte[] name, Option ... _options) {
+        invoke(new SessionDetach(name, _options));
+    }
+
+    final void sessionDetached(byte[] name, SessionDetachCode code, Option ... _options) {
+        invoke(new SessionDetached(name, code, _options));
+    }
+
+    final void sessionRequestTimeout(long timeout, Option ... _options) {
+        invoke(new SessionRequestTimeout(timeout, _options));
+    }
+
+    final void sessionTimeout(long timeout, Option ... _options) {
+        invoke(new SessionTimeout(timeout, _options));
+    }
+
+    final void sessionCommandPoint(int commandId, long commandOffset, Option ... _options) {
+        invoke(new SessionCommandPoint(commandId, commandOffset, _options));
+    }
+
+    final void sessionExpected(RangeSet commands, java.util.List<Object> fragments, Option ... _options) {
+        invoke(new SessionExpected(commands, fragments, _options));
+    }
+
+    final void sessionConfirmed(RangeSet commands, java.util.List<Object> fragments, Option ... _options) {
+        invoke(new SessionConfirmed(commands, fragments, _options));
+    }
+
+    final void sessionCompleted(RangeSet commands, Option ... _options) {
+        invoke(new SessionCompleted(commands, _options));
+    }
+
+    final void sessionKnownCompleted(RangeSet commands, Option ... _options) {
+        invoke(new SessionKnownCompleted(commands, _options));
+    }
+
+    final void sessionFlush(Option ... _options) {
+        invoke(new SessionFlush(_options));
+    }
+
+    final void sessionGap(RangeSet commands, Option ... _options) {
+        invoke(new SessionGap(commands, _options));
+    }
+
+    public final void executionSync(Option ... _options) {
+        invoke(new ExecutionSync(_options));
+    }
+
+    public final void executionResult(int commandId, Struct value, Option ... _options) {
+        invoke(new ExecutionResult(commandId, value, _options));
+    }
+
+    public final void executionException(ExecutionErrorCode errorCode, int commandId, short classCode, short commandCode, short fieldIndex, String description, Map<String,Object> errorInfo, Option ... _options) {
+        invoke(new ExecutionException(errorCode, commandId, classCode, commandCode, fieldIndex, description, errorInfo, _options));
+    }
+
+    public final void messageTransfer(String destination, MessageAcceptMode acceptMode, MessageAcquireMode acquireMode, Header header, java.nio.ByteBuffer body, Option ... _options) {
+        invoke(new MessageTransfer(destination, acceptMode, acquireMode, header, body, _options));
+    }
+
+    public final void messageAccept(RangeSet transfers, Option ... _options) {
+        invoke(new MessageAccept(transfers, _options));
+    }
+
+    public final void messageReject(RangeSet transfers, MessageRejectCode code, String text, Option ... _options) {
+        invoke(new MessageReject(transfers, code, text, _options));
+    }
+
+    public final void messageRelease(RangeSet transfers, Option ... _options) {
+        invoke(new MessageRelease(transfers, _options));
+    }
+
+    public final Future<Acquired> messageAcquire(RangeSet transfers, Option ... _options) {
+        return invoke(new MessageAcquire(transfers, _options), Acquired.class);
+    }
+
+    public final Future<MessageResumeResult> messageResume(String destination, String resumeId, Option ... _options) {
+        return invoke(new MessageResume(destination, resumeId, _options), MessageResumeResult.class);
+    }
+
+    public final void messageSubscribe(String queue, String destination, MessageAcceptMode acceptMode, MessageAcquireMode acquireMode, String resumeId, long resumeTtl, Map<String,Object> arguments, Option ... _options) {
+        invoke(new MessageSubscribe(queue, destination, acceptMode, acquireMode, resumeId, resumeTtl, arguments, _options));
+    }
+
+    public final void messageCancel(String destination, Option ... _options) {
+        invoke(new MessageCancel(destination, _options));
+    }
+
+    public final void messageSetFlowMode(String destination, MessageFlowMode flowMode, Option ... _options) {
+        invoke(new MessageSetFlowMode(destination, flowMode, _options));
+    }
+
+    public final void messageFlow(String destination, MessageCreditUnit unit, long value, Option ... _options) {
+        invoke(new MessageFlow(destination, unit, value, _options));
+    }
+
+    public final void messageFlush(String destination, Option ... _options) {
+        invoke(new MessageFlush(destination, _options));
+    }
+
+    public final void messageStop(String destination, Option ... _options) {
+        invoke(new MessageStop(destination, _options));
+    }
+
+    public final void txSelect(Option ... _options) {
+        invoke(new TxSelect(_options));
+    }
+
+    public final void txCommit(Option ... _options) {
+        invoke(new TxCommit(_options));
+    }
+
+    public final void txRollback(Option ... _options) {
+        invoke(new TxRollback(_options));
+    }
+
+    public final void dtxSelect(Option ... _options) {
+        invoke(new DtxSelect(_options));
+    }
+
+    public final Future<XaResult> dtxStart(Xid xid, Option ... _options) {
+        return invoke(new DtxStart(xid, _options), XaResult.class);
+    }
+
+    public final Future<XaResult> dtxEnd(Xid xid, Option ... _options) {
+        return invoke(new DtxEnd(xid, _options), XaResult.class);
+    }
+
+    public final Future<XaResult> dtxCommit(Xid xid, Option ... _options) {
+        return invoke(new DtxCommit(xid, _options), XaResult.class);
+    }
+
+    public final void dtxForget(Xid xid, Option ... _options) {
+        invoke(new DtxForget(xid, _options));
+    }
+
+    public final Future<GetTimeoutResult> dtxGetTimeout(Xid xid, Option ... _options) {
+        return invoke(new DtxGetTimeout(xid, _options), GetTimeoutResult.class);
+    }
+
+    public final Future<XaResult> dtxPrepare(Xid xid, Option ... _options) {
+        return invoke(new DtxPrepare(xid, _options), XaResult.class);
+    }
+
+    public final Future<RecoverResult> dtxRecover(Option ... _options) {
+        return invoke(new DtxRecover(_options), RecoverResult.class);
+    }
+
+    public final Future<XaResult> dtxRollback(Xid xid, Option ... _options) {
+        return invoke(new DtxRollback(xid, _options), XaResult.class);
+    }
+
+    public final void dtxSetTimeout(Xid xid, long timeout, Option ... _options) {
+        invoke(new DtxSetTimeout(xid, timeout, _options));
+    }
+
+    public final void exchangeDeclare(String exchange, String type, String alternateExchange, Map<String,Object> arguments, Option ... _options) {
+        invoke(new ExchangeDeclare(exchange, type, alternateExchange, arguments, _options));
+    }
+
+    public final void exchangeDelete(String exchange, Option ... _options) {
+        invoke(new ExchangeDelete(exchange, _options));
+    }
+
+    public final Future<ExchangeQueryResult> exchangeQuery(String name, Option ... _options) {
+        return invoke(new ExchangeQuery(name, _options), ExchangeQueryResult.class);
+    }
+
+    public final void exchangeBind(String queue, String exchange, String bindingKey, Map<String,Object> arguments, Option ... _options) {
+        invoke(new ExchangeBind(queue, exchange, bindingKey, arguments, _options));
+    }
+
+    public final void exchangeUnbind(String queue, String exchange, String bindingKey, Option ... _options) {
+        invoke(new ExchangeUnbind(queue, exchange, bindingKey, _options));
+    }
+
+    public final Future<ExchangeBoundResult> exchangeBound(String exchange, String queue, String bindingKey, Map<String,Object> arguments, Option ... _options) {
+        return invoke(new ExchangeBound(exchange, queue, bindingKey, arguments, _options), ExchangeBoundResult.class);
+    }
+
+    public final void queueDeclare(String queue, String alternateExchange, Map<String,Object> arguments, Option ... _options) {
+        invoke(new QueueDeclare(queue, alternateExchange, arguments, _options));
+    }
+
+    public final void queueDelete(String queue, Option ... _options) {
+        invoke(new QueueDelete(queue, _options));
+    }
+
+    public final void queuePurge(String queue, Option ... _options) {
+        invoke(new QueuePurge(queue, _options));
+    }
+
+    public final Future<QueueQueryResult> queueQuery(String queue, Option ... _options) {
+        return invoke(new QueueQuery(queue, _options), QueueQueryResult.class);
+    }
+
+    protected abstract void invoke(Method method);
+
+    protected abstract <T> Future<T> invoke(Method method, Class<T> resultClass);
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionKnownCompleted.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionKnownCompleted.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionKnownCompleted.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionKnownCompleted.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,154 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionKnownCompleted extends Method {
+
+    public static final int TYPE = 523;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private RangeSet commands;
+
+
+    public SessionKnownCompleted() {}
+
+
+    public SessionKnownCompleted(RangeSet commands, Option ... _options) {
+        if(commands != null) {
+            setCommands(commands);
+        }
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionKnownCompleted(context, this);
+    }
+
+
+    public final boolean hasCommands() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionKnownCompleted clearCommands() {
+        packing_flags &= ~256;
+        this.commands = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final RangeSet getCommands() {
+        return commands;
+    }
+
+    public final SessionKnownCompleted setCommands(RangeSet value) {
+        this.commands = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionKnownCompleted commands(RangeSet value) {
+        return setCommands(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeSequenceSet(this.commands);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.commands = dec.readSequenceSet();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("commands", getCommands());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionRequestTimeout.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionRequestTimeout.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionRequestTimeout.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionRequestTimeout.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,152 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionRequestTimeout extends Method {
+
+    public static final int TYPE = 517;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private long timeout;
+
+
+    public SessionRequestTimeout() {}
+
+
+    public SessionRequestTimeout(long timeout, Option ... _options) {
+        setTimeout(timeout);
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionRequestTimeout(context, this);
+    }
+
+
+    public final boolean hasTimeout() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionRequestTimeout clearTimeout() {
+        packing_flags &= ~256;
+        this.timeout = 0;
+        setDirty(true);
+        return this;
+    }
+
+    public final long getTimeout() {
+        return timeout;
+    }
+
+    public final SessionRequestTimeout setTimeout(long value) {
+        this.timeout = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionRequestTimeout timeout(long value) {
+        return setTimeout(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeUint32(this.timeout);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.timeout = dec.readUint32();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("timeout", getTimeout());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionTimeout.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionTimeout.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionTimeout.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/SessionTimeout.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,152 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class SessionTimeout extends Method {
+
+    public static final int TYPE = 518;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L3;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private long timeout;
+
+
+    public SessionTimeout() {}
+
+
+    public SessionTimeout(long timeout, Option ... _options) {
+        setTimeout(timeout);
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.sessionTimeout(context, this);
+    }
+
+
+    public final boolean hasTimeout() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final SessionTimeout clearTimeout() {
+        packing_flags &= ~256;
+        this.timeout = 0;
+        setDirty(true);
+        return this;
+    }
+
+    public final long getTimeout() {
+        return timeout;
+    }
+
+    public final SessionTimeout setTimeout(long value) {
+        this.timeout = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final SessionTimeout timeout(long value) {
+        return setTimeout(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeUint32(this.timeout);
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.timeout = dec.readUint32();
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("timeout", getTimeout());
+        }
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StreamReturnCode.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StreamReturnCode.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StreamReturnCode.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StreamReturnCode.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,52 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+public enum StreamReturnCode {
+
+    CONTENT_TOO_LARGE((int) 311),
+    NO_ROUTE((int) 312),
+    NO_CONSUMERS((int) 313);
+
+    private final int value;
+
+    StreamReturnCode(int value)
+    {
+        this.value = value;
+    }
+
+    public int getValue()
+    {
+        return value;
+    }
+
+    public static StreamReturnCode get(int value)
+    {
+        switch (value)
+        {
+        case (int) 311: return CONTENT_TOO_LARGE;
+        case (int) 312: return NO_ROUTE;
+        case (int) 313: return NO_CONSUMERS;
+        default: throw new IllegalArgumentException("no such value: " + value);
+        }
+    }
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StructFactory.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StructFactory.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StructFactory.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/StructFactory.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,200 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+class StructFactory {
+
+    public static Struct create(int type)
+    {
+        switch (type)
+        {
+        case SessionHeader.TYPE:
+            return new SessionHeader();
+        case SessionCommandFragment.TYPE:
+            return new SessionCommandFragment();
+        case DeliveryProperties.TYPE:
+            return new DeliveryProperties();
+        case FragmentProperties.TYPE:
+            return new FragmentProperties();
+        case ReplyTo.TYPE:
+            return new ReplyTo();
+        case MessageProperties.TYPE:
+            return new MessageProperties();
+        case XaResult.TYPE:
+            return new XaResult();
+        case Xid.TYPE:
+            return new Xid();
+        case Acquired.TYPE:
+            return new Acquired();
+        case MessageResumeResult.TYPE:
+            return new MessageResumeResult();
+        case GetTimeoutResult.TYPE:
+            return new GetTimeoutResult();
+        case RecoverResult.TYPE:
+            return new RecoverResult();
+        case ExchangeQueryResult.TYPE:
+            return new ExchangeQueryResult();
+        case ExchangeBoundResult.TYPE:
+            return new ExchangeBoundResult();
+        case QueueQueryResult.TYPE:
+            return new QueueQueryResult();
+        default:
+            throw new IllegalArgumentException("type: " + type);
+        }
+    }
+
+    public static Struct createInstruction(int type)
+    {
+        switch (type)
+        {
+        case ConnectionStart.TYPE:
+            return new ConnectionStart();
+        case ConnectionStartOk.TYPE:
+            return new ConnectionStartOk();
+        case ConnectionSecure.TYPE:
+            return new ConnectionSecure();
+        case ConnectionSecureOk.TYPE:
+            return new ConnectionSecureOk();
+        case ConnectionTune.TYPE:
+            return new ConnectionTune();
+        case ConnectionTuneOk.TYPE:
+            return new ConnectionTuneOk();
+        case ConnectionOpen.TYPE:
+            return new ConnectionOpen();
+        case ConnectionOpenOk.TYPE:
+            return new ConnectionOpenOk();
+        case ConnectionRedirect.TYPE:
+            return new ConnectionRedirect();
+        case ConnectionHeartbeat.TYPE:
+            return new ConnectionHeartbeat();
+        case ConnectionClose.TYPE:
+            return new ConnectionClose();
+        case ConnectionCloseOk.TYPE:
+            return new ConnectionCloseOk();
+        case SessionAttach.TYPE:
+            return new SessionAttach();
+        case SessionAttached.TYPE:
+            return new SessionAttached();
+        case SessionDetach.TYPE:
+            return new SessionDetach();
+        case SessionDetached.TYPE:
+            return new SessionDetached();
+        case SessionRequestTimeout.TYPE:
+            return new SessionRequestTimeout();
+        case SessionTimeout.TYPE:
+            return new SessionTimeout();
+        case SessionCommandPoint.TYPE:
+            return new SessionCommandPoint();
+        case SessionExpected.TYPE:
+            return new SessionExpected();
+        case SessionConfirmed.TYPE:
+            return new SessionConfirmed();
+        case SessionCompleted.TYPE:
+            return new SessionCompleted();
+        case SessionKnownCompleted.TYPE:
+            return new SessionKnownCompleted();
+        case SessionFlush.TYPE:
+            return new SessionFlush();
+        case SessionGap.TYPE:
+            return new SessionGap();
+        case ExecutionSync.TYPE:
+            return new ExecutionSync();
+        case ExecutionResult.TYPE:
+            return new ExecutionResult();
+        case ExecutionException.TYPE:
+            return new ExecutionException();
+        case MessageTransfer.TYPE:
+            return new MessageTransfer();
+        case MessageAccept.TYPE:
+            return new MessageAccept();
+        case MessageReject.TYPE:
+            return new MessageReject();
+        case MessageRelease.TYPE:
+            return new MessageRelease();
+        case MessageAcquire.TYPE:
+            return new MessageAcquire();
+        case MessageResume.TYPE:
+            return new MessageResume();
+        case MessageSubscribe.TYPE:
+            return new MessageSubscribe();
+        case MessageCancel.TYPE:
+            return new MessageCancel();
+        case MessageSetFlowMode.TYPE:
+            return new MessageSetFlowMode();
+        case MessageFlow.TYPE:
+            return new MessageFlow();
+        case MessageFlush.TYPE:
+            return new MessageFlush();
+        case MessageStop.TYPE:
+            return new MessageStop();
+        case TxSelect.TYPE:
+            return new TxSelect();
+        case TxCommit.TYPE:
+            return new TxCommit();
+        case TxRollback.TYPE:
+            return new TxRollback();
+        case DtxSelect.TYPE:
+            return new DtxSelect();
+        case DtxStart.TYPE:
+            return new DtxStart();
+        case DtxEnd.TYPE:
+            return new DtxEnd();
+        case DtxCommit.TYPE:
+            return new DtxCommit();
+        case DtxForget.TYPE:
+            return new DtxForget();
+        case DtxGetTimeout.TYPE:
+            return new DtxGetTimeout();
+        case DtxPrepare.TYPE:
+            return new DtxPrepare();
+        case DtxRecover.TYPE:
+            return new DtxRecover();
+        case DtxRollback.TYPE:
+            return new DtxRollback();
+        case DtxSetTimeout.TYPE:
+            return new DtxSetTimeout();
+        case ExchangeDeclare.TYPE:
+            return new ExchangeDeclare();
+        case ExchangeDelete.TYPE:
+            return new ExchangeDelete();
+        case ExchangeQuery.TYPE:
+            return new ExchangeQuery();
+        case ExchangeBind.TYPE:
+            return new ExchangeBind();
+        case ExchangeUnbind.TYPE:
+            return new ExchangeUnbind();
+        case ExchangeBound.TYPE:
+            return new ExchangeBound();
+        case QueueDeclare.TYPE:
+            return new QueueDeclare();
+        case QueueDelete.TYPE:
+            return new QueueDelete();
+        case QueuePurge.TYPE:
+            return new QueuePurge();
+        case QueueQuery.TYPE:
+            return new QueueQuery();
+        default:
+            throw new IllegalArgumentException("type: " + type);
+        }
+    }
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Track.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Track.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Track.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Track.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,50 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+public enum Track {
+
+    CONTROL((short) 0),
+    COMMAND((short) 1);
+
+    private final short value;
+
+    Track(short value)
+    {
+        this.value = value;
+    }
+
+    public short getValue()
+    {
+        return value;
+    }
+
+    public static Track get(short value)
+    {
+        switch (value)
+        {
+        case (short) 0: return CONTROL;
+        case (short) 1: return COMMAND;
+        default: throw new IllegalArgumentException("no such value: " + value);
+        }
+    }
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxCommit.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxCommit.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxCommit.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxCommit.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,111 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class TxCommit extends Method {
+
+    public static final int TYPE = 1282;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L4;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+
+
+
+
+    public TxCommit(Option ... _options) {
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.txCommit(context, this);
+    }
+
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxRollback.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxRollback.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxRollback.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxRollback.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,111 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class TxRollback extends Method {
+
+    public static final int TYPE = 1283;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L4;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+
+
+
+
+    public TxRollback(Option ... _options) {
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.txRollback(context, this);
+    }
+
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxSelect.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxSelect.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxSelect.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/TxSelect.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,111 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+import org.apache.qpid.transport.network.Frame;
+
+
+public final class TxSelect extends Method {
+
+    public static final int TYPE = 1281;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 0;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return Frame.L4;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+
+
+
+
+    public TxSelect(Option ... _options) {
+
+        for (int i=0; i < _options.length; i++) {
+            switch (_options[i]) {
+            case SYNC: this.setSync(true); break;
+            case BATCH: this.setBatch(true); break;
+            case UNRELIABLE: this.setUnreliable(true); break;
+            case NONE: break;
+            default: throw new IllegalArgumentException("invalid option: " + _options[i]);
+            }
+        }
+
+    }
+
+    public <C> void dispatch(C context, MethodDelegate<C> delegate) {
+        delegate.txSelect(context, this);
+    }
+
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+
+
+        return result;
+    }
+
+
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Type.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Type.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Type.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/Type.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,148 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+
+
+public enum Type
+{
+
+    BIN8((byte) 0x00, 1, true),
+    INT8((byte) 0x01, 1, true),
+    UINT8((byte) 0x02, 1, true),
+    CHAR((byte) 0x04, 1, true),
+    BOOLEAN((byte) 0x08, 1, true),
+    BIN16((byte) 0x10, 2, true),
+    INT16((byte) 0x11, 2, true),
+    UINT16((byte) 0x12, 2, true),
+    BIN32((byte) 0x20, 4, true),
+    INT32((byte) 0x21, 4, true),
+    UINT32((byte) 0x22, 4, true),
+    FLOAT((byte) 0x23, 4, true),
+    CHAR_UTF32((byte) 0x27, 4, true),
+    BIN64((byte) 0x30, 8, true),
+    INT64((byte) 0x31, 8, true),
+    UINT64((byte) 0x32, 8, true),
+    DOUBLE((byte) 0x33, 8, true),
+    DATETIME((byte) 0x38, 8, true),
+    BIN128((byte) 0x40, 16, true),
+    UUID((byte) 0x48, 16, true),
+    BIN256((byte) 0x50, 32, true),
+    BIN512((byte) 0x60, 64, true),
+    BIN1024((byte) 0x70, 128, true),
+    VBIN8((byte) 0x80, 1, false),
+    STR8_LATIN((byte) 0x84, 1, false),
+    STR8((byte) 0x85, 1, false),
+    STR8_UTF16((byte) 0x86, 1, false),
+    VBIN16((byte) 0x90, 2, false),
+    STR16_LATIN((byte) 0x94, 2, false),
+    STR16((byte) 0x95, 2, false),
+    STR16_UTF16((byte) 0x96, 2, false),
+    VBIN32((byte) 0xa0, 4, false),
+    MAP((byte) 0xa8, 4, false),
+    LIST((byte) 0xa9, 4, false),
+    ARRAY((byte) 0xaa, 4, false),
+    STRUCT32((byte) 0xab, 4, false),
+    BIN40((byte) 0xc0, 5, true),
+    DEC32((byte) 0xc8, 5, true),
+    BIN72((byte) 0xd0, 9, true),
+    DEC64((byte) 0xd8, 9, true),
+    VOID((byte) 0xf0, 0, true),
+    BIT((byte) 0xf1, 0, true);
+
+    private final byte code;
+    private final int width;
+    private final boolean fixed;
+
+    Type(byte code, int width, boolean fixed)
+    {
+        this.code = code;
+        this.width = width;
+        this.fixed = fixed;
+    }
+
+    public byte getCode()
+    {
+        return code;
+    }
+
+    public int getWidth()
+    {
+        return width;
+    }
+
+    public boolean isFixed()
+    {
+        return fixed;
+    }
+
+    public static Type get(byte code)
+    {
+        switch (code)
+        {
+        case (byte) 0x00: return BIN8;
+        case (byte) 0x01: return INT8;
+        case (byte) 0x02: return UINT8;
+        case (byte) 0x04: return CHAR;
+        case (byte) 0x08: return BOOLEAN;
+        case (byte) 0x10: return BIN16;
+        case (byte) 0x11: return INT16;
+        case (byte) 0x12: return UINT16;
+        case (byte) 0x20: return BIN32;
+        case (byte) 0x21: return INT32;
+        case (byte) 0x22: return UINT32;
+        case (byte) 0x23: return FLOAT;
+        case (byte) 0x27: return CHAR_UTF32;
+        case (byte) 0x30: return BIN64;
+        case (byte) 0x31: return INT64;
+        case (byte) 0x32: return UINT64;
+        case (byte) 0x33: return DOUBLE;
+        case (byte) 0x38: return DATETIME;
+        case (byte) 0x40: return BIN128;
+        case (byte) 0x48: return UUID;
+        case (byte) 0x50: return BIN256;
+        case (byte) 0x60: return BIN512;
+        case (byte) 0x70: return BIN1024;
+        case (byte) 0x80: return VBIN8;
+        case (byte) 0x84: return STR8_LATIN;
+        case (byte) 0x85: return STR8;
+        case (byte) 0x86: return STR8_UTF16;
+        case (byte) 0x90: return VBIN16;
+        case (byte) 0x94: return STR16_LATIN;
+        case (byte) 0x95: return STR16;
+        case (byte) 0x96: return STR16_UTF16;
+        case (byte) 0xa0: return VBIN32;
+        case (byte) 0xa8: return MAP;
+        case (byte) 0xa9: return LIST;
+        case (byte) 0xaa: return ARRAY;
+        case (byte) 0xab: return STRUCT32;
+        case (byte) 0xc0: return BIN40;
+        case (byte) 0xc8: return DEC32;
+        case (byte) 0xd0: return BIN72;
+        case (byte) 0xd8: return DEC64;
+        case (byte) 0xf0: return VOID;
+        case (byte) 0xf1: return BIT;
+
+        default: return null;
+        }
+    }
+}

Added: qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/XaResult.java
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/XaResult.java?rev=1527366&view=auto
==============================================================================
--- qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/XaResult.java (added)
+++ qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/XaResult.java Sun Sep 29 17:45:16 2013
@@ -0,0 +1,141 @@
+package org.apache.qpid.transport;
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+
+import org.apache.qpid.transport.codec.Decoder;
+import org.apache.qpid.transport.codec.Encoder;
+
+
+
+public final class XaResult extends Struct {
+
+    public static final int TYPE = 1537;
+
+    public final int getStructType() {
+        return TYPE;
+    }
+
+    public final int getSizeWidth() {
+        return 4;
+    }
+
+    public final int getPackWidth() {
+        return 2;
+    }
+
+    public final boolean hasPayload() {
+        return false;
+    }
+
+    public final byte getEncodedTrack() {
+        return -1;
+    }
+
+    public final boolean isConnectionControl()
+    {
+        return false;
+    }
+
+    private short packing_flags = 0;
+    private DtxXaStatus status;
+
+
+    public XaResult() {}
+
+
+    public XaResult(DtxXaStatus status) {
+        if(status != null) {
+            setStatus(status);
+        }
+
+    }
+
+
+
+
+    public final boolean hasStatus() {
+        return (packing_flags & 256) != 0;
+    }
+
+    public final XaResult clearStatus() {
+        packing_flags &= ~256;
+        this.status = null;
+        setDirty(true);
+        return this;
+    }
+
+    public final DtxXaStatus getStatus() {
+        return status;
+    }
+
+    public final XaResult setStatus(DtxXaStatus value) {
+        this.status = value;
+        packing_flags |= 256;
+        setDirty(true);
+        return this;
+    }
+
+    public final XaResult status(DtxXaStatus value) {
+        return setStatus(value);
+    }
+
+
+
+
+    public void write(Encoder enc)
+    {
+        enc.writeUint16(packing_flags);
+        if ((packing_flags & 256) != 0)
+        {
+            enc.writeUint16(this.status.getValue());
+        }
+
+    }
+
+    public void read(Decoder dec)
+    {
+        packing_flags = (short) dec.readUint16();
+        if ((packing_flags & 256) != 0)
+        {
+            this.status = DtxXaStatus.get(dec.readUint16());
+        }
+
+    }
+
+    public Map<String,Object> getFields()
+    {
+        Map<String,Object> result = new LinkedHashMap<String,Object>();
+
+        if ((packing_flags & 256) != 0)
+        {
+            result.put("status", getStatus());
+        }
+
+
+        return result;
+    }
+
+
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org