You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2016/12/11 16:01:07 UTC
svn commit: r1773584 [2/4] - in
/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0:
./ codec/ framing/ messaging/ type/ type/codec/ type/messaging/codec/
type/security/codec/ type/transaction/codec/ typ...
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/LongWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/LongWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/LongWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/LongWriter.java Sun Dec 11 16:01:06 2016
@@ -21,91 +21,60 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
-
-public class LongWriter implements ValueWriter<Long>
+public class LongWriter
{
private static final byte EIGHT_BYTE_FORMAT_CODE = (byte) 0x81;
private static final byte ONE_BYTE_FORMAT_CODE = (byte) 0x55;
- private ValueWriter<Long> _delegate;
+ private static ValueWriter.Factory<Long> FACTORY =
+ new ValueWriter.Factory<Long>()
+ {
+ @Override
+ public ValueWriter<Long> newInstance(final ValueWriter.Registry registry,
+ final Long l)
+ {
+ if (l >= -128 && l <= 127)
+ {
+ return new LongFixedOneWriter(l);
+ }
+ else
+ {
+ return new LongFixedEightWriter(l);
+ }
+ }
+ };
- private final FixedEightWriter<Long> _eightByteWriter = new FixedEightWriter<Long>()
+ public static void register(ValueWriter.Registry registry)
{
+ registry.register(Long.class, FACTORY);
+ }
- @Override
- byte getFormatCode()
- {
- return EIGHT_BYTE_FORMAT_CODE;
- }
-
- @Override
- long convertValueToLong(Long value)
- {
- return value;
- }
-
- };
-
- private final ValueWriter<Long> _oneByteWriter = new FixedOneWriter<Long>()
+ private static class LongFixedEightWriter extends FixedEightWriter<Long>
{
-
- @Override protected byte getFormatCode()
+ public LongFixedEightWriter(final Long object)
{
- return ONE_BYTE_FORMAT_CODE;
+ super(object);
}
- @Override protected byte convertToByte(final Long value)
+ @Override
+ byte getFormatCode()
{
- return value.byteValue();
+ return EIGHT_BYTE_FORMAT_CODE;
}
- };
-
- public int writeToBuffer(final QpidByteBuffer buffer)
- {
- return _delegate.writeToBuffer(buffer);
}
- public void setValue(final Long l)
+ private static class LongFixedOneWriter extends FixedOneWriter<Long>
{
- if(l >= -128 && l <= 127)
+ public LongFixedOneWriter(final Long value)
{
- _delegate = _oneByteWriter;
+ super(value.byteValue());
}
- else
+
+ @Override protected byte getFormatCode()
{
- _delegate = _eightByteWriter;
+ return ONE_BYTE_FORMAT_CODE;
}
- _delegate.setValue(l);
}
-
- public boolean isComplete()
- {
- return _delegate.isComplete();
- }
-
- public boolean isCacheable()
- {
- return false;
- }
-
-
-
-
- private static Factory<Long> FACTORY = new Factory<Long>()
- {
-
- public ValueWriter<Long> newInstance(Registry registry)
- {
- return new LongWriter();
- }
- };
-
- public static void register(ValueWriter.Registry registry)
- {
- registry.register(Long.class, FACTORY);
- }
-
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/MapWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/MapWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/MapWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/MapWriter.java Sun Dec 11 16:01:06 2016
@@ -30,18 +30,15 @@ public class MapWriter extends AbstractM
private Object _value;
private Iterator<Map.Entry> _iterator;
- public MapWriter(final Registry registry)
- {
- super(registry);
- }
- @Override
- protected void onSetValue(final Map value)
+ private MapWriter(final Registry registry, final Map object)
{
- _map = value;
- _iterator = value.entrySet().iterator();
+ super(registry, object);
+ _map = object;
+ _iterator = object.entrySet().iterator();
}
+
@Override
protected int getMapCount()
{
@@ -71,14 +68,6 @@ public class MapWriter extends AbstractM
@Override
- protected void onClear()
- {
- _map = null;
- _iterator = null;
- _value = null;
- }
-
- @Override
protected void onReset()
{
_iterator = _map.entrySet().iterator();
@@ -89,9 +78,11 @@ public class MapWriter extends AbstractM
private static Factory<Map> FACTORY = new Factory<Map>()
{
- public ValueWriter<Map> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Map> newInstance(final Registry registry,
+ final Map object)
{
- return new MapWriter(registry);
+ return new MapWriter(registry, object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/NullWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/NullWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/NullWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/NullWriter.java Sun Dec 11 16:01:06 2016
@@ -25,41 +25,28 @@ import org.apache.qpid.bytebuffer.QpidBy
public class NullWriter implements ValueWriter<Void>
{
- private boolean _complete = true;
+ private static final NullWriter INSTANCE = new NullWriter();
- public int writeToBuffer(QpidByteBuffer buffer)
+ @Override
+ public int getEncodedSize()
{
-
- if(!_complete && buffer.hasRemaining())
- {
- buffer.put((byte)0x40);
- _complete = true;
- }
-
return 1;
}
- public void setValue(Void frameBody)
+ public void writeToBuffer(QpidByteBuffer buffer)
{
- _complete = false;
- }
- public boolean isCacheable()
- {
- return true;
- }
-
- public boolean isComplete()
- {
- return _complete;
+ buffer.put((byte)0x40);
}
private static Factory<Void> FACTORY = new Factory<Void>()
{
- public ValueWriter<Void> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Void> newInstance(final Registry registry,
+ final Void object)
{
- return new NullWriter();
+ return INSTANCE;
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/RestrictedTypeValueWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/RestrictedTypeValueWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/RestrictedTypeValueWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/RestrictedTypeValueWriter.java Sun Dec 11 16:01:06 2016
@@ -29,6 +29,12 @@ public class RestrictedTypeValueWriter<V
super(registry);
}
+ public RestrictedTypeValueWriter(final Registry registry,
+ final RestrictedType<V> object)
+ {
+ super(registry, object);
+ }
+
@Override
protected Object getUnderlyingValue(final RestrictedType<V> restrictedType)
{
@@ -38,17 +44,13 @@ public class RestrictedTypeValueWriter<V
private static Factory FACTORY = new Factory()
{
- public ValueWriter newInstance(Registry registry)
+ @Override
+ public ValueWriter newInstance(final Registry registry, final Object object)
{
- return new RestrictedTypeValueWriter(registry);
+ return new RestrictedTypeValueWriter(registry, (RestrictedType) object);
}
};
- public boolean isCacheable()
- {
- return true;
- }
-
public static void register(ValueWriter.Registry registry, Class clazz)
{
registry.register(clazz, FACTORY);
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ShortWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ShortWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ShortWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ShortWriter.java Sun Dec 11 16:01:06 2016
@@ -26,6 +26,15 @@ public class ShortWriter extends FixedTw
private static final byte FORMAT_CODE = (byte)0x61;
+ public ShortWriter()
+ {
+ }
+
+ public ShortWriter(Short object)
+ {
+ setValue(object);
+ }
+
@Override
short convertValueToShort(Short value)
@@ -42,9 +51,11 @@ public class ShortWriter extends FixedTw
private static Factory<Short> FACTORY = new Factory<Short>()
{
- public ValueWriter<Short> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Short> newInstance(final Registry registry,
+ final Short object)
{
- return new ShortWriter();
+ return new ShortWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SimpleVariableWidthWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SimpleVariableWidthWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SimpleVariableWidthWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SimpleVariableWidthWriter.java Sun Dec 11 16:01:06 2016
@@ -27,42 +27,15 @@ public abstract class SimpleVariableWidt
{
private byte[] _buf;
-
- public void setValue(V value)
- {
- _buf = getByteArray(value);
- super.setValue(value);
- }
-
- protected int getLength()
+ public SimpleVariableWidthWriter(byte[] value)
{
- return _buf.length;
+ super(value.length);
+ _buf = value;
}
- protected void writeBytes(QpidByteBuffer buf, int offset, int length)
+ protected final void writeBytes(QpidByteBuffer buf, int offset, int length)
{
- buf.put(_buf, getOffset()+offset, length);
+ buf.put(_buf, offset, length);
}
- @Override
- protected void clearValue()
- {
- _buf = null;
- }
-
- @Override
- protected boolean hasValue()
- {
- return _buf != null;
- }
-
- public boolean isCacheable()
- {
- return true;
- }
-
- protected abstract byte[] getByteArray(V value);
-
- protected abstract int getOffset();
-
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/StringWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/StringWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/StringWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/StringWriter.java Sun Dec 11 16:01:06 2016
@@ -21,11 +21,8 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
-import java.util.LinkedHashMap;
-import java.util.Map;
public class StringWriter extends SimpleVariableWidthWriter<String>
{
@@ -49,30 +46,11 @@ public class StringWriter extends Simple
}
}
- private static final class ValueCache<K,V> extends LinkedHashMap<K,V>
+ public StringWriter(final String value)
{
- private final int _cacheSize;
-
- public ValueCache(int cacheSize)
- {
- _cacheSize = cacheSize;
- }
-
- @Override
- protected boolean removeEldestEntry(Map.Entry<K, V> eldest)
- {
- return size() > _cacheSize;
- }
-
- public boolean isFull()
- {
- return size() == _cacheSize;
- }
+ super(value.getBytes(ENCODING_CHARSET));
}
- private final ValueCache<String, byte[]> _cachedEncodings = new ValueCache<String, byte[]>(10);
-
-
@Override
protected byte getFourOctetEncodingCode()
{
@@ -85,58 +63,15 @@ public class StringWriter extends Simple
return ONE_BYTE_CODE;
}
- @Override
- protected byte[] getByteArray(String value)
- {
-
- byte[] encoding;
- boolean isFull = _cachedEncodings.isFull();
- if(isFull)
- {
- encoding = _cachedEncodings.remove(value);
- }
- else
- {
- encoding = _cachedEncodings.get(value);
- }
-
-
- if(encoding == null)
- {
- ByteBuffer buf = ENCODING_CHARSET.encode(value);
- if(buf.hasArray() && buf.arrayOffset() == 0 && buf.limit()==buf.capacity())
- {
- encoding = buf.array();
- }
- else
- {
- byte[] bufArray = new byte[buf.limit()-buf.position()];
- buf.get(bufArray);
- encoding = bufArray;
- }
- _cachedEncodings.put(value,encoding);
-
- }
- else if(isFull)
- {
- _cachedEncodings.put(value,encoding);
- }
-
- return encoding;
- }
-
- @Override
- protected int getOffset()
- {
- return 0;
- }
private static Factory<String> FACTORY = new Factory<String>()
{
- public ValueWriter<String> newInstance(Registry registry)
+ @Override
+ public ValueWriter<String> newInstance(final Registry registry,
+ final String object)
{
- return new StringWriter();
+ return new StringWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolArrayWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolArrayWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolArrayWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolArrayWriter.java Sun Dec 11 16:01:06 2016
@@ -19,75 +19,52 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import org.apache.qpid.server.protocol.v1_0.type.Symbol;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
-
import java.nio.ByteBuffer;
-public class SymbolArrayWriter extends VariableWidthWriter<Symbol[]>
-{
-
- private int _length;
- private byte[] _encodedVal;
-
- @Override protected void clearValue()
- {
- _encodedVal = null;
- }
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
- @Override protected boolean hasValue()
+public class SymbolArrayWriter extends SimpleVariableWidthWriter<Symbol[]>
+{
+ private SymbolArrayWriter(final Symbol[] object)
{
- return _encodedVal != null;
+ super(getEncodedValue(object));
}
- @Override protected byte getFourOctetEncodingCode()
+ @Override
+ protected byte getFourOctetEncodingCode()
{
return (byte) 0xf0;
}
- @Override protected byte getSingleOctetEncodingCode()
+ @Override
+ protected byte getSingleOctetEncodingCode()
{
return (byte) 0xe0;
}
- @Override protected int getLength()
- {
- return _length;
- }
-
- @Override protected void writeBytes(final QpidByteBuffer buf, final int offset, final int length)
+ private static byte[] getEncodedValue(final Symbol[] value)
{
- buf.put(_encodedVal,offset,length);
- }
-
- public boolean isCacheable()
- {
- return false;
- }
-
- public void setValue(final Symbol[] value)
- {
-
+ byte[] encodedVal;
+ int length;
boolean useSmallConstructor = useSmallConstructor(value);
boolean isSmall = useSmallConstructor && canFitInSmall(value);
if(isSmall)
{
- _length = 2;
+ length = 2;
}
else
{
- _length = 5;
+ length = 5;
}
for(Symbol symbol : value)
{
- _length += symbol.length() ;
+ length += symbol.length() ;
}
- _length += value.length * (useSmallConstructor ? 1 : 4);
-
+ length += value.length * (useSmallConstructor ? 1 : 4);
- _encodedVal = new byte[_length];
+ encodedVal = new byte[length];
- ByteBuffer buf = ByteBuffer.wrap(_encodedVal);
+ ByteBuffer buf = ByteBuffer.wrap(encodedVal);
if(isSmall)
{
buf.put((byte)value.length);
@@ -116,13 +93,10 @@ public class SymbolArrayWriter extends V
buf.put((byte)symbol.charAt(i));
}
}
-
-
-
- super.setValue(value);
+ return encodedVal;
}
- private boolean useSmallConstructor(final Symbol[] value)
+ private static boolean useSmallConstructor(final Symbol[] value)
{
for(Symbol sym : value)
{
@@ -134,7 +108,7 @@ public class SymbolArrayWriter extends V
return true;
}
- private boolean canFitInSmall(final Symbol[] value)
+ private static boolean canFitInSmall(final Symbol[] value)
{
if(value.length>=127)
{
@@ -158,9 +132,11 @@ public class SymbolArrayWriter extends V
private static Factory<Symbol[]> FACTORY = new Factory<Symbol[]>()
{
- public ValueWriter<Symbol[]> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Symbol[]> newInstance(final Registry registry,
+ final Symbol[] object)
{
- return new SymbolArrayWriter();
+ return new SymbolArrayWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/SymbolWriter.java Sun Dec 11 16:01:06 2016
@@ -21,11 +21,11 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import org.apache.qpid.server.protocol.v1_0.type.Symbol;
-import org.apache.qpid.bytebuffer.QpidByteBuffer;
-
import java.nio.charset.Charset;
+import org.apache.qpid.bytebuffer.QpidByteBuffer;
+import org.apache.qpid.server.protocol.v1_0.type.Symbol;
+
public class SymbolWriter extends VariableWidthWriter<Symbol>
{
private static final Charset ENCODING_CHARSET = Charset.forName("US-ASCII");
@@ -33,6 +33,11 @@ public class SymbolWriter extends Variab
public static final byte SMALL_ENCODING_CODE = (byte) 0xa3;
private Symbol _value;
+ public SymbolWriter(final Symbol object)
+ {
+ super(object.length());
+ _value = object;
+ }
@Override
protected byte getFourOctetEncodingCode()
@@ -47,36 +52,6 @@ public class SymbolWriter extends Variab
}
@Override
- public void setValue(Symbol value)
- {
- _value = value;
- super.setValue(value);
- }
-
- public boolean isCacheable()
- {
- return true;
- }
-
- @Override
- protected void clearValue()
- {
- _value = null;
- }
-
- @Override
- protected boolean hasValue()
- {
- return _value != null;
- }
-
- @Override
- protected int getLength()
- {
- return _value.length();
- }
-
- @Override
protected void writeBytes(QpidByteBuffer buf, int offset, int length)
{
int end = offset + length;
@@ -89,9 +64,11 @@ public class SymbolWriter extends Variab
private static Factory<Symbol> FACTORY = new Factory<Symbol>()
{
- public ValueWriter<Symbol> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Symbol> newInstance(final Registry registry,
+ final Symbol object)
{
- return new SymbolWriter();
+ return new SymbolWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/TimestampWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/TimestampWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/TimestampWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/TimestampWriter.java Sun Dec 11 16:01:06 2016
@@ -27,25 +27,25 @@ public class TimestampWriter extends Fix
{
private static final byte FORMAT_CODE = (byte) 0x83;
-
- @Override
- byte getFormatCode()
+ public TimestampWriter(final Date object)
{
- return FORMAT_CODE;
+ super(object.getTime());
}
@Override
- long convertValueToLong(Date value)
+ byte getFormatCode()
{
- return value.getTime();
+ return FORMAT_CODE;
}
private static Factory<Date> FACTORY = new Factory<Date>()
{
- public ValueWriter<Date> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Date> newInstance(final Registry registry,
+ final Date object)
{
- return new TimestampWriter();
+ return new TimestampWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UUIDWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UUIDWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UUIDWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UUIDWriter.java Sun Dec 11 16:01:06 2016
@@ -27,6 +27,14 @@ public class UUIDWriter extends FixedSix
{
private static final byte FORMAT_CODE = (byte) 0x98;
+ public UUIDWriter()
+ {
+ }
+
+ public UUIDWriter(final UUID object)
+ {
+ super(object);
+ }
@Override
byte getFormatCode()
@@ -49,9 +57,11 @@ public class UUIDWriter extends FixedSix
private static Factory<UUID> FACTORY = new Factory<UUID>()
{
- public ValueWriter<UUID> newInstance(Registry registry)
+ @Override
+ public ValueWriter<UUID> newInstance(final Registry registry,
+ final UUID object)
{
- return new UUIDWriter();
+ return new UUIDWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedByteWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedByteWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedByteWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedByteWriter.java Sun Dec 11 16:01:06 2016
@@ -26,61 +26,44 @@ import org.apache.qpid.bytebuffer.QpidBy
public class UnsignedByteWriter implements ValueWriter<UnsignedByte>
{
- private int _written;
private byte _value;
- public int writeToBuffer(QpidByteBuffer buffer)
+ public UnsignedByteWriter()
{
+ }
- switch(_written)
- {
- case 0:
- if(buffer.hasRemaining())
- {
- buffer.put((byte)0x50);
- }
- else
- {
- break;
- }
- case 1:
- if(buffer.hasRemaining())
- {
- buffer.put(_value);
- _written = 2;
- }
- else
- {
- _written = 1;
- }
-
- }
- return 2;
+ public UnsignedByteWriter(UnsignedByte value)
+ {
+ setValue(value);
}
- public void setValue(UnsignedByte value)
+
+ @Override
+ public int getEncodedSize()
{
- _written = 0;
- _value = value.byteValue();
+ return 2;
}
- public boolean isComplete()
+ public void writeToBuffer(QpidByteBuffer buffer)
{
- return _written == 2;
+ buffer.put((byte)0x50);
+ buffer.put(_value);
}
- public boolean isCacheable()
+ public void setValue(UnsignedByte value)
{
- return true;
+ _value = value.byteValue();
}
private static Factory<UnsignedByte> FACTORY = new Factory<UnsignedByte>()
{
- public ValueWriter<UnsignedByte> newInstance(Registry registry)
+ @Override
+ public ValueWriter<UnsignedByte> newInstance(final Registry registry,
+ final UnsignedByte object)
{
- return new UnsignedByteWriter();
+ return new UnsignedByteWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedIntegerWriter.java Sun Dec 11 16:01:06 2016
@@ -21,127 +21,89 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
import org.apache.qpid.bytebuffer.QpidByteBuffer;
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedInteger;
-public class UnsignedIntegerWriter implements ValueWriter<UnsignedInteger>
+public class UnsignedIntegerWriter
{
private static final byte EIGHT_BYTE_FORMAT_CODE = (byte)0x70;
private static final byte ONE_BYTE_FORMAT_CODE = (byte) 0x52;
private static final byte ZERO_BYTE_FORMAT_CODE = (byte) 0x43;
- private ValueWriter<UnsignedInteger> _delegate;
- private final FixedFourWriter<UnsignedInteger> _eightByteWriter = new FixedFourWriter<UnsignedInteger>()
- {
-
- @Override
- byte getFormatCode()
+ private static final ValueWriter<UnsignedInteger> ZERO_BYTE_WRITER = new ValueWriter<UnsignedInteger>()
{
- return EIGHT_BYTE_FORMAT_CODE;
- }
- @Override
- int convertValueToInt(UnsignedInteger value)
- {
- return value.intValue();
- }
- };
-
- private final ValueWriter<UnsignedInteger> _oneByteWriter = new FixedOneWriter<UnsignedInteger>()
- {
-
- @Override protected byte getFormatCode()
- {
- return ONE_BYTE_FORMAT_CODE;
- }
-
- @Override protected byte convertToByte(final UnsignedInteger value)
- {
- return value.byteValue();
- }
- };
-
- private final ValueWriter<UnsignedInteger> _zeroByteWriter = new ValueWriter<UnsignedInteger>()
- {
- private boolean _complete;
-
-
- public int writeToBuffer(QpidByteBuffer buffer)
+ @Override
+ public int getEncodedSize()
{
-
- if(!_complete && buffer.hasRemaining())
- {
- buffer.put(ZERO_BYTE_FORMAT_CODE);
- _complete = true;
- }
-
return 1;
}
- public void setValue(UnsignedInteger uint)
+ public void writeToBuffer(QpidByteBuffer buffer)
{
- _complete = false;
+ buffer.put(ZERO_BYTE_FORMAT_CODE);
}
+ };
- public boolean isCacheable()
- {
- return true;
- }
- public boolean isComplete()
- {
- return _complete;
- }
- };
+ private static ValueWriter.Factory<UnsignedInteger> FACTORY = new ValueWriter.Factory<UnsignedInteger>()
+ {
+
+ @Override
+ public ValueWriter<UnsignedInteger> newInstance(final ValueWriter.Registry registry,
+ final UnsignedInteger uint)
+ {
+ if(uint.equals(UnsignedInteger.ZERO))
+ {
+ return ZERO_BYTE_WRITER;
+ }
+ else if(uint.compareTo(UnsignedInteger.valueOf(256))<0)
+ {
+ return new UnsignedIntegerFixedOneWriter(uint);
+ }
+ else
+ {
+ return new UnsignedIntegerFixedFourWriter(uint);
+ }
+ }
+ };
- public int writeToBuffer(final QpidByteBuffer buffer)
+ public static void register(ValueWriter.Registry registry)
{
- return _delegate.writeToBuffer(buffer);
+ registry.register(UnsignedInteger.class, FACTORY);
}
- public void setValue(final UnsignedInteger uint)
+ private static class UnsignedIntegerFixedFourWriter extends FixedFourWriter<UnsignedInteger>
{
- if(uint.equals(UnsignedInteger.ZERO))
- {
- _delegate = _zeroByteWriter;
- }
- else if(uint.compareTo(UnsignedInteger.valueOf(256))<0)
+
+ UnsignedIntegerFixedFourWriter(final UnsignedInteger object)
{
- _delegate = _oneByteWriter;
+ super(object.intValue());
}
- else
+
+ @Override
+ byte getFormatCode()
{
- _delegate = _eightByteWriter;
+ return EIGHT_BYTE_FORMAT_CODE;
}
- _delegate.setValue(uint);
- }
- public boolean isComplete()
- {
- return _delegate.isComplete();
}
- public boolean isCacheable()
+ private static class UnsignedIntegerFixedOneWriter extends FixedOneWriter<UnsignedInteger>
{
- return false;
- }
-
-
- private static Factory<UnsignedInteger> FACTORY = new Factory<UnsignedInteger>()
- {
- public ValueWriter<UnsignedInteger> newInstance(Registry registry)
- {
- return new UnsignedIntegerWriter();
- }
- };
+ UnsignedIntegerFixedOneWriter(final UnsignedInteger value)
+ {
+ super(value.byteValue());
+ }
- public static void register(ValueWriter.Registry registry)
- {
- registry.register(UnsignedInteger.class, FACTORY);
+ @Override protected byte getFormatCode()
+ {
+ return ONE_BYTE_FORMAT_CODE;
+ }
}
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedLongWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedLongWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedLongWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedLongWriter.java Sun Dec 11 16:01:06 2016
@@ -21,131 +21,104 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
import org.apache.qpid.bytebuffer.QpidByteBuffer;
+import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
-public class UnsignedLongWriter implements ValueWriter<UnsignedLong>
+public class UnsignedLongWriter
{
-
-
private static final byte EIGHT_BYTE_FORMAT_CODE = (byte) 0x80;
private static final byte ONE_BYTE_FORMAT_CODE = (byte) 0x53;
private static final byte ZERO_BYTE_FORMAT_CODE = (byte) 0x44;
- private ValueWriter<UnsignedLong> _delegate;
- private final FixedEightWriter<UnsignedLong> _eightByteWriter = new FixedEightWriter<UnsignedLong>()
+ private static final ValueWriter<UnsignedLong> ZERO_BYTE_WRITER = new ValueWriter<UnsignedLong>()
{
-
- @Override
- byte getFormatCode()
- {
- return EIGHT_BYTE_FORMAT_CODE;
- }
-
@Override
- long convertValueToLong(UnsignedLong value)
+ public int getEncodedSize()
{
- return value.longValue();
- }
-
- };
-
- private final ValueWriter<UnsignedLong> _oneByteWriter = new FixedOneWriter<UnsignedLong>()
- {
-
- @Override protected byte getFormatCode()
- {
- return ONE_BYTE_FORMAT_CODE;
+ return 1;
}
- @Override protected byte convertToByte(final UnsignedLong value)
+ public void writeToBuffer(QpidByteBuffer buffer)
{
- return value.byteValue();
+ buffer.put(ZERO_BYTE_FORMAT_CODE);
}
};
- private final ValueWriter<UnsignedLong> _zeroByteWriter = new ValueWriter<UnsignedLong>()
- {
- private boolean _complete;
-
- public int writeToBuffer(QpidByteBuffer buffer)
- {
- if(!_complete && buffer.hasRemaining())
+ private static ValueWriter.Factory<UnsignedLong> FACTORY =
+ new ValueWriter.Factory<UnsignedLong>()
{
- buffer.put(ZERO_BYTE_FORMAT_CODE);
- _complete = true;
- }
- return 1;
- }
+ @Override
+ public ValueWriter<UnsignedLong> newInstance(final ValueWriter.Registry registry,
+ final UnsignedLong object)
+ {
+ if (object.equals(UnsignedLong.ZERO))
+ {
+ return ZERO_BYTE_WRITER;
+ }
+ else if ((object.longValue() & 0xffL) == object.longValue())
+ {
+ return new UnsignedLongFixedOneWriter(object);
+ }
+ else
+ {
+ return new UnsignedLongFixedEightWriter(object);
+ }
+ }
+ };
+
+ public static void register(ValueWriter.Registry registry)
+ {
+ registry.register(UnsignedLong.class, FACTORY);
+ }
- public void setValue(UnsignedLong ulong)
+ private static class UnsignedLongFixedOneWriter extends FixedOneWriter<UnsignedLong>
+ {
+ UnsignedLongFixedOneWriter(final UnsignedLong value)
{
- _complete = false;
+ super(value.byteValue());
}
- public boolean isCacheable()
+ UnsignedLongFixedOneWriter(byte value)
{
- return true;
+ super(value);
}
- public boolean isComplete()
+ @Override protected byte getFormatCode()
{
- return _complete;
+ return ONE_BYTE_FORMAT_CODE;
}
-
- };
-
-
-
- private static Factory<UnsignedLong> FACTORY = new Factory<UnsignedLong>()
- {
-
- public ValueWriter<UnsignedLong> newInstance(Registry registry)
- {
- return new UnsignedLongWriter();
- }
- };
-
- public static void register(ValueWriter.Registry registry)
- {
- registry.register(UnsignedLong.class, FACTORY);
}
- public int writeToBuffer(final QpidByteBuffer buffer)
+ private static class UnsignedLongFixedEightWriter extends FixedEightWriter<UnsignedLong>
{
- return _delegate.writeToBuffer(buffer);
- }
-
- public void setValue(final UnsignedLong ulong)
- {
- if(ulong.equals(UnsignedLong.ZERO))
+ public UnsignedLongFixedEightWriter(final UnsignedLong object)
{
- _delegate = _zeroByteWriter;
+ super(object.longValue());
}
- else if((ulong.longValue() & 0xffL) == ulong.longValue())
+ public UnsignedLongFixedEightWriter(final long value)
{
- _delegate = _oneByteWriter;
+ super(value);
}
- else
+
+ @Override
+ byte getFormatCode()
{
- _delegate = _eightByteWriter;
+ return EIGHT_BYTE_FORMAT_CODE;
}
-
- _delegate.setValue(ulong);
}
- public boolean isComplete()
+ public static ValueWriter<UnsignedLong> getWriter(byte value)
{
- return _delegate.isComplete();
+ return new UnsignedLongFixedOneWriter(value);
}
- public boolean isCacheable()
+
+ public static ValueWriter<UnsignedLong> getWriter(long value)
{
- return false;
+ return new UnsignedLongFixedEightWriter(value);
}
-
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedShortWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedShortWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedShortWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/UnsignedShortWriter.java Sun Dec 11 16:01:06 2016
@@ -27,6 +27,14 @@ public class UnsignedShortWriter extends
{
private static final byte FORMAT_CODE = (byte)0x60;
+ public UnsignedShortWriter()
+ {
+ }
+
+ public UnsignedShortWriter(final UnsignedShort object)
+ {
+ super(object);
+ }
@Override
short convertValueToShort(UnsignedShort value)
@@ -43,9 +51,11 @@ public class UnsignedShortWriter extends
private static Factory<UnsignedShort> FACTORY = new Factory<UnsignedShort>()
{
- public ValueWriter<UnsignedShort> newInstance(Registry registry)
+ @Override
+ public ValueWriter<UnsignedShort> newInstance(final Registry registry,
+ final UnsignedShort object)
{
- return new UnsignedShortWriter();
+ return new UnsignedShortWriter(object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ValueWriter.java Sun Dec 11 16:01:06 2016
@@ -21,8 +21,6 @@
package org.apache.qpid.server.protocol.v1_0.codec;
-import java.util.Map;
-
import org.apache.qpid.bytebuffer.QpidByteBuffer;
public interface ValueWriter<T extends Object>
@@ -30,30 +28,25 @@ public interface ValueWriter<T extends O
- public static interface Factory<V extends Object>
+ interface Factory<V extends Object>
{
- ValueWriter<V> newInstance(Registry registry);
+ ValueWriter<V> newInstance(Registry registry, V object);
}
- public static interface Registry
+ interface Registry
{
- public static interface Source
+ interface Source
{
- public Registry getDescribedTypeRegistry();
+ Registry getDescribedTypeRegistry();
}
<V extends Object> ValueWriter<V> getValueWriter(V value);
- <V extends Object> ValueWriter<V> getValueWriter(V value, Map<Class, ValueWriter> localCache);
+
<V extends Object> ValueWriter<V> register(Class<V> clazz, ValueWriter.Factory<V> writer);
}
+ int getEncodedSize();
- int writeToBuffer(QpidByteBuffer buffer);
-
- void setValue(T frameBody);
-
- boolean isComplete();
-
- boolean isCacheable();
+ void writeToBuffer(QpidByteBuffer buffer);
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/VariableWidthWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/VariableWidthWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/VariableWidthWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/VariableWidthWriter.java Sun Dec 11 16:01:06 2016
@@ -25,145 +25,48 @@ import org.apache.qpid.bytebuffer.QpidBy
public abstract class VariableWidthWriter<V> implements ValueWriter<V>
{
- private int _written;
- private int _size;
+ private final int _length;
+ private final int _size;
- public int writeToBuffer(QpidByteBuffer buffer)
+ public VariableWidthWriter(int length)
+ {
+ _length = length;
+ _size = (_length & 0xFFFFFF00) == 0 ? 1 : 4;
+ }
+
+ public void writeToBuffer(QpidByteBuffer buffer)
{
- int written = _written;
final int length = getLength();
boolean singleOctetSize = _size == 1;
if(singleOctetSize)
{
- switch(written)
- {
- case 0:
- if(buffer.hasRemaining())
- {
- buffer.put(getSingleOctetEncodingCode());
- }
- else
- {
- break;
- }
- case 1:
- if(buffer.hasRemaining())
- {
- buffer.put((byte)length);
- written = 2;
- }
- else
- {
- written = 1;
- break;
- }
- default:
-
- final int toWrite = 2 + length - written;
- if(buffer.remaining() >= toWrite)
- {
- writeBytes(buffer, written-2,toWrite);
- written = length + 2;
- clearValue();
- }
- else
- {
- final int remaining = buffer.remaining();
-
- writeBytes(buffer, written-2, remaining);
- written += remaining;
- }
-
- }
+ buffer.put(getSingleOctetEncodingCode());
+ buffer.put((byte)length);
}
else
{
- int remaining = buffer.remaining();
-
- switch(written)
- {
-
- case 0:
- if(buffer.hasRemaining())
- {
- buffer.put(getFourOctetEncodingCode());
- remaining--;
- written = 1;
- }
- else
- {
- break;
- }
- case 1:
- if(remaining >= 4)
- {
- buffer.putInt(length);
- remaining-=4;
- written+=4;
- }
- case 2:
- case 3:
- if(remaining >= 2 && written <= 3)
- {
- buffer.putShort((short)((length >> ((3-written)<<3)) & 0xFFFF ));
- remaining -= 2;
- written += 2;
- }
- case 4:
- if(remaining >=1 && written <=4)
- {
- buffer.put((byte)((length>> ((4-written)<<3)) & 0xFF ));
- written++;
- }
-
- default:
-
- final int toWrite = 5 + length - written;
- if(buffer.remaining() >= toWrite)
- {
- writeBytes(buffer, written-5,toWrite);
- written = length + 5;
- clearValue();
- }
- else if(buffer.hasRemaining())
- {
- written += buffer.remaining();
- writeBytes(buffer, written-5, buffer.remaining());
- }
-
- }
-
+ buffer.put(getFourOctetEncodingCode());
+ buffer.putInt(length);
}
-
- _written = written;
- return 1 + _size + length;
+ writeBytes(buffer, 0,length);
}
- protected abstract void clearValue();
-
- protected abstract boolean hasValue();
+ @Override
+ public int getEncodedSize()
+ {
+ return 1 + _size + getLength();
+ }
protected abstract byte getFourOctetEncodingCode();
protected abstract byte getSingleOctetEncodingCode();
- public void setValue(V value)
+ protected final int getLength()
{
- _written = 0;
- _size = (getLength() & 0xFFFFFF00) == 0 ? 1 : 4;
+ return _length;
}
- protected abstract int getLength();
-
protected abstract void writeBytes(QpidByteBuffer buf, int offset, int length);
-
-
- public boolean isComplete()
- {
- return !hasValue() || _written == getLength() + _size + 1;
- }
-
-
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/framing/FrameHandler.java Sun Dec 11 16:01:06 2016
@@ -46,14 +46,22 @@ public class FrameHandler implements Pro
private ValueHandler _typeHandler;
private boolean _errored = false;
- public FrameHandler(final AMQPConnection_1_0 connection, final boolean sasl)
+ public FrameHandler(final ValueHandler typeHandler, final ConnectionHandler connection, final boolean isSasl)
{
+ _typeHandler = typeHandler;
_connection = connection;
- _typeHandler = new ValueHandler(connection.getDescribedTypeRegistry());
- _isSasl = sasl;
+ _isSasl = isSasl;
+ }
+
+ public FrameHandler(final AMQPConnection_1_0 connection, final boolean sasl)
+ {
+ this(new ValueHandler(connection.getDescribedTypeRegistry()), connection, sasl);
}
+
+
+
public ProtocolHandler parse(QpidByteBuffer in)
{
try
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/messaging/SectionEncoderImpl.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/messaging/SectionEncoderImpl.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/messaging/SectionEncoderImpl.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/messaging/SectionEncoderImpl.java Sun Dec 11 16:01:06 2016
@@ -26,7 +26,6 @@ import org.apache.qpid.server.protocol.v
public class SectionEncoderImpl implements SectionEncoder
{
- private static final QpidByteBuffer EMPTY_BYTE_BUFFER = QpidByteBuffer.wrap(new byte[0]);
private AMQPDescribedTypeRegistry _registry;
public SectionEncoderImpl(final AMQPDescribedTypeRegistry describedTypeRegistry)
@@ -37,8 +36,7 @@ public class SectionEncoderImpl implemen
public QpidByteBuffer encodeObject(Object obj)
{
final ValueWriter<Object> valueWriter = _registry.getValueWriter(obj);
- valueWriter.setValue(obj);
- int size = valueWriter.writeToBuffer(EMPTY_BYTE_BUFFER);
+ int size = valueWriter.getEncodedSize();
final QpidByteBuffer buf = QpidByteBuffer.allocateDirect(size);
valueWriter.writeToBuffer(buf);
buf.flip();
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/Binary.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/Binary.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/Binary.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/Binary.java Sun Dec 11 16:01:06 2016
@@ -21,38 +21,28 @@
package org.apache.qpid.server.protocol.v1_0.type;
import java.nio.ByteBuffer;
-import java.util.Collection;
+import java.util.Arrays;
public class Binary
{
private final byte[] _data;
- private final int _offset;
- private final int _length;
private final int _hashCode;
public Binary(final byte[] data)
{
- this(data, 0, data.length);
- }
-
- public Binary(final byte[] data, final int offset, final int length)
- {
-
_data = data;
- _offset = offset;
- _length = length;
int hc = 0;
- for (int i = 0; i < length; i++)
+ for (int i = 0; i < _data.length; i++)
{
- hc = 31*hc + (0xFF & data[offset + i]);
+ hc = 31*hc + (0xFF & data[i]);
}
_hashCode = hc;
}
public ByteBuffer asByteBuffer()
{
- return ByteBuffer.wrap(_data, _offset, _length);
+ return ByteBuffer.wrap(_data);
}
public final int hashCode()
@@ -65,53 +55,26 @@ public class Binary
if(o instanceof Binary)
{
Binary buf = (Binary) o;
-
- final int size = _length;
- if (size == buf._length)
- {
- final byte[] myData = _data;
- final byte[] theirData = buf._data;
- int myOffset = _offset;
- int theirOffset = buf._offset;
- final int myLimit = myOffset + size;
-
- while (myOffset < myLimit)
- {
- if (myData[myOffset++] != theirData[theirOffset++])
- {
- return false;
- }
- }
-
- return true;
- }
+ return Arrays.equals(_data, buf._data);
}
return false;
}
- public int getArrayOffset()
- {
- return _offset;
- }
public byte[] getArray()
{
return _data;
}
- public int getLength()
- {
- return _length;
- }
public String toString()
{
StringBuilder str = new StringBuilder();
- for (int i = _offset; i < _length; i++)
+ for (int i = 0; i < _data.length; i++)
{
byte c = _data[i];
@@ -128,32 +91,4 @@ public class Binary
return str.toString();
}
-
- public static Binary combine(final Collection<Binary> binaries)
- {
-
- if(binaries.size() == 1)
- {
- return binaries.iterator().next();
- }
-
- int size = 0;
- for(Binary binary : binaries)
- {
- size += binary.getLength();
- }
- byte[] data = new byte[size];
- int offset = 0;
- for(Binary binary : binaries)
- {
- System.arraycopy(binary._data, binary._offset, data, offset, binary._length);
- offset += binary._length;
- }
- return new Binary(data);
- }
-
- public Binary subBinary(final int offset, final int length)
- {
- return new Binary(_data, _offset+offset, length);
- }
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/codec/AMQPDescribedTypeRegistry.java Sun Dec 11 16:01:06 2016
@@ -307,12 +307,6 @@ public class AMQPDescribedTypeRegistry i
private final Map<Class, ValueWriter.Factory> _writerMap = new HashMap<Class, ValueWriter.Factory>();
- public <V extends Object> ValueWriter<V> getValueWriter(V value, Map<Class, ValueWriter> localCache)
- {
- return getValueWriter(value);
-
- }
-
public <V extends Object> ValueWriter<V> getValueWriter(V value)
{
@@ -328,16 +322,14 @@ public class AMQPDescribedTypeRegistry i
{
factory = _writerMap.get(List.class);
_writerMap.put(value.getClass(), factory);
- writer = factory.newInstance(this);
- writer.setValue(value);
+ writer = factory.newInstance(this, value);
}
else if(value instanceof Map)
{
factory = _writerMap.get(Map.class);
_writerMap.put(value.getClass(), factory);
- writer = factory.newInstance(this);
- writer.setValue(value);
+ writer = factory.newInstance(this, value);
}
else if(value.getClass().isArray())
@@ -355,8 +347,7 @@ public class AMQPDescribedTypeRegistry i
}
// TODO primitive array types
factory = _writerMap.get(List.class);
- writer = factory.newInstance(this);
- writer.setValue(Arrays.asList((Object[])value));
+ writer = factory.newInstance(this, (V)Arrays.asList((Object[])value));
}
else
@@ -366,8 +357,7 @@ public class AMQPDescribedTypeRegistry i
}
else
{
- writer = factory.newInstance(this);
- writer.setValue(value);
+ writer = factory.newInstance(this, value);
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AcceptedWriter.java Sun Dec 11 16:01:06 2016
@@ -24,120 +24,26 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractListWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ListWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
-
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
import org.apache.qpid.server.protocol.v1_0.type.messaging.Accepted;
public class AcceptedWriter extends AbstractDescribedTypeWriter<Accepted>
{
- private Accepted _value;
- private int _count = -1;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x24);
public AcceptedWriter(final Registry registry)
{
- super(registry);
- }
-
- @Override
- protected void onSetValue(final Accepted value)
- {
- _value = value;
- _count = calculateCount();
- }
-
- private int calculateCount()
- {
-
-
- return 0;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- _count = -1;
- }
-
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x0000000000000024L);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
- {
- if(_count != 0)
- {
- final Writer writer = new Writer(getRegistry());
- writer.setValue(_value);
- return writer;
- }
- else
- {
- return new ListWriter.EmptyListValueWriter();
- }
-
- }
-
- private class Writer extends AbstractListWriter<Accepted>
- {
- private int _field;
-
- public Writer(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final Accepted value)
- {
- reset();
- }
-
- @Override
- protected int getCount()
- {
- return _count;
- }
-
- @Override
- protected boolean hasNext()
- {
- return _field < _count;
- }
-
- @Override
- protected Object next()
- {
- switch(_field++)
- {
-
- default:
- return null;
- }
- }
-
- @Override
- protected void clear()
- {
- }
-
- @Override
- protected void reset()
- {
- _field = 0;
- }
+ super(DESCRIPTOR_WRITER, ListWriter.EMPTY_LIST_WRITER);
}
private static Factory<Accepted> FACTORY = new Factory<Accepted>()
{
- public ValueWriter<Accepted> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Accepted> newInstance(final Registry registry, final Accepted object)
{
return new AcceptedWriter(registry);
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceWriter.java Sun Dec 11 16:01:06 2016
@@ -24,6 +24,7 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -31,44 +32,21 @@ import org.apache.qpid.server.protocol.v
public class AmqpSequenceWriter extends AbstractDescribedTypeWriter<AmqpSequence>
{
- private AmqpSequence _value;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x76);
-
- public AmqpSequenceWriter(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final AmqpSequence value)
- {
- _value = value;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- }
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x0000000000000076L);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
+ public AmqpSequenceWriter(final Registry registry, final AmqpSequence object)
{
- return getRegistry().getValueWriter(_value);
+ super(DESCRIPTOR_WRITER, registry.getValueWriter(object.getValue()));
}
private static Factory<AmqpSequence> FACTORY = new Factory<AmqpSequence>()
{
- public ValueWriter<AmqpSequence> newInstance(Registry registry)
+ @Override
+ public ValueWriter<AmqpSequence> newInstance(final Registry registry, final AmqpSequence object)
{
- return new AmqpSequenceWriter(registry);
+ return new AmqpSequenceWriter(registry, object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpValueWriter.java Sun Dec 11 16:01:06 2016
@@ -24,6 +24,7 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -31,44 +32,20 @@ import org.apache.qpid.server.protocol.v
public class AmqpValueWriter extends AbstractDescribedTypeWriter<AmqpValue>
{
- private AmqpValue _value;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x77);
-
-
- public AmqpValueWriter(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final AmqpValue value)
- {
- _value = value;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- }
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x0000000000000077L);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
+ private AmqpValueWriter(final Registry registry, final AmqpValue object)
{
- return getRegistry().getValueWriter(_value.getValue());
+ super(DESCRIPTOR_WRITER, registry.getValueWriter(object.getValue()));
}
private static Factory<AmqpValue> FACTORY = new Factory<AmqpValue>()
{
- public ValueWriter<AmqpValue> newInstance(Registry registry)
+ @Override
+ public ValueWriter<AmqpValue> newInstance(final Registry registry, final AmqpValue object)
{
- return new AmqpValueWriter(registry);
+ return new AmqpValueWriter(registry, object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesWriter.java Sun Dec 11 16:01:06 2016
@@ -24,6 +24,7 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -31,44 +32,21 @@ import org.apache.qpid.server.protocol.v
public class ApplicationPropertiesWriter extends AbstractDescribedTypeWriter<ApplicationProperties>
{
- private ApplicationProperties _value;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x74);
-
-
- public ApplicationPropertiesWriter(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final ApplicationProperties value)
- {
- _value = value;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- }
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x0000000000000074L);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
+ private ApplicationPropertiesWriter(final Registry registry, final ApplicationProperties object)
{
- return getRegistry().getValueWriter(_value.getValue());
+ super(DESCRIPTOR_WRITER, registry.getValueWriter(object.getValue()));
}
private static Factory<ApplicationProperties> FACTORY = new Factory<ApplicationProperties>()
{
- public ValueWriter<ApplicationProperties> newInstance(Registry registry)
+ @Override
+ public ValueWriter<ApplicationProperties> newInstance(final Registry registry,
+ final ApplicationProperties object)
{
- return new ApplicationPropertiesWriter(registry);
+ return new ApplicationPropertiesWriter(registry, object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataWriter.java Sun Dec 11 16:01:06 2016
@@ -24,6 +24,7 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
@@ -31,44 +32,20 @@ import org.apache.qpid.server.protocol.v
public class DataWriter extends AbstractDescribedTypeWriter<Data>
{
- private Data _value;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x75);
-
-
- public DataWriter(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final Data value)
- {
- _value = value;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- }
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x0000000000000075L);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
+ public DataWriter(final Registry registry, final Data object)
{
- return getRegistry().getValueWriter(_value.getValue());
+ super(DESCRIPTOR_WRITER, registry.getValueWriter(object.getValue()));
}
private static Factory<Data> FACTORY = new Factory<Data>()
{
- public ValueWriter<Data> newInstance(Registry registry)
+ @Override
+ public ValueWriter<Data> newInstance(final Registry registry, final Data object)
{
- return new DataWriter(registry);
+ return new DataWriter(registry, object);
}
};
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnCloseWriter.java Sun Dec 11 16:01:06 2016
@@ -24,111 +24,27 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractListWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.ListWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
-
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
import org.apache.qpid.server.protocol.v1_0.type.messaging.DeleteOnClose;
public class DeleteOnCloseWriter extends AbstractDescribedTypeWriter<DeleteOnClose>
{
- private DeleteOnClose _value;
- private int _count = -1;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x2B);
public DeleteOnCloseWriter(final Registry registry)
{
- super(registry);
- }
-
- @Override
- protected void onSetValue(final DeleteOnClose value)
- {
- _value = value;
- _count = calculateCount();
+ super(DESCRIPTOR_WRITER, ListWriter.EMPTY_LIST_WRITER);
}
- private int calculateCount()
- {
-
-
- return 0;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- _count = -1;
- }
-
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x000000000000002bL);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
- {
- final Writer writer = new Writer(getRegistry());
- writer.setValue(_value);
- return writer;
- }
-
- private class Writer extends AbstractListWriter<DeleteOnClose>
- {
- private int _field;
-
- public Writer(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final DeleteOnClose value)
- {
- reset();
- }
-
- @Override
- protected int getCount()
- {
- return _count;
- }
-
- @Override
- protected boolean hasNext()
- {
- return _field < _count;
- }
-
- @Override
- protected Object next()
- {
- switch(_field++)
- {
-
- default:
- return null;
- }
- }
-
- @Override
- protected void clear()
- {
- }
-
- @Override
- protected void reset()
- {
- _field = 0;
- }
- }
private static Factory<DeleteOnClose> FACTORY = new Factory<DeleteOnClose>()
{
- public ValueWriter<DeleteOnClose> newInstance(Registry registry)
+ @Override
+ public ValueWriter<DeleteOnClose> newInstance(final Registry registry, final DeleteOnClose object)
{
return new DeleteOnCloseWriter(registry);
}
Modified: qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesWriter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesWriter.java?rev=1773584&r1=1773583&r2=1773584&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesWriter.java (original)
+++ qpid/java/trunk/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeleteOnNoLinksOrMessagesWriter.java Sun Dec 11 16:01:06 2016
@@ -24,111 +24,27 @@
package org.apache.qpid.server.protocol.v1_0.type.messaging.codec;
import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeWriter;
-import org.apache.qpid.server.protocol.v1_0.codec.AbstractListWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.ListWriter;
+import org.apache.qpid.server.protocol.v1_0.codec.UnsignedLongWriter;
import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter;
-
import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong;
import org.apache.qpid.server.protocol.v1_0.type.messaging.DeleteOnNoLinksOrMessages;
public class DeleteOnNoLinksOrMessagesWriter extends AbstractDescribedTypeWriter<DeleteOnNoLinksOrMessages>
{
- private DeleteOnNoLinksOrMessages _value;
- private int _count = -1;
+ private static final ValueWriter<UnsignedLong> DESCRIPTOR_WRITER = UnsignedLongWriter.getWriter((byte) 0x2E);
public DeleteOnNoLinksOrMessagesWriter(final Registry registry)
{
- super(registry);
- }
-
- @Override
- protected void onSetValue(final DeleteOnNoLinksOrMessages value)
- {
- _value = value;
- _count = calculateCount();
- }
-
- private int calculateCount()
- {
-
-
- return 0;
- }
-
- @Override
- protected void clear()
- {
- _value = null;
- _count = -1;
- }
-
-
- protected Object getDescriptor()
- {
- return UnsignedLong.valueOf(0x000000000000002eL);
- }
-
- @Override
- protected ValueWriter createDescribedWriter()
- {
- final Writer writer = new Writer(getRegistry());
- writer.setValue(_value);
- return writer;
- }
-
- private class Writer extends AbstractListWriter<DeleteOnNoLinksOrMessages>
- {
- private int _field;
-
- public Writer(final Registry registry)
- {
- super(registry);
- }
-
- @Override
- protected void onSetValue(final DeleteOnNoLinksOrMessages value)
- {
- reset();
- }
-
- @Override
- protected int getCount()
- {
- return _count;
- }
-
- @Override
- protected boolean hasNext()
- {
- return _field < _count;
- }
-
- @Override
- protected Object next()
- {
- switch(_field++)
- {
-
- default:
- return null;
- }
- }
-
- @Override
- protected void clear()
- {
- }
-
- @Override
- protected void reset()
- {
- _field = 0;
- }
+ super(DESCRIPTOR_WRITER, ListWriter.EMPTY_LIST_WRITER);
}
private static Factory<DeleteOnNoLinksOrMessages> FACTORY = new Factory<DeleteOnNoLinksOrMessages>()
{
- public ValueWriter<DeleteOnNoLinksOrMessages> newInstance(Registry registry)
+ @Override
+ public ValueWriter<DeleteOnNoLinksOrMessages> newInstance(final Registry registry,
+ final DeleteOnNoLinksOrMessages object)
{
return new DeleteOnNoLinksOrMessagesWriter(registry);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org