static int GetEncodeSize(Array array, bool arrayEncoding, out int width) { int size = FixedWidth.FormatCode + ArrayEncoding.GetValueSize(array, null); width = arrayEncoding ? FixedWidth.UInt : AmqpEncoding.GetEncodeWidthByCountAndSize(array.Length, size); size += FixedWidth.FormatCode + width + width; return(size); }
private static int GetEncodeSize(Array array, bool arrayEncoding, out int width) { int valueSize = 1 + ArrayEncoding.GetValueSize(array, null); width = (arrayEncoding ? 4 : AmqpEncoding.GetEncodeWidthByCountAndSize(array.Length, valueSize)); valueSize = valueSize + 1 + width + width; return(valueSize); }
public static int GetEncodeSize <T>(T[] value) { if (value == null) { return(1); } return(ArrayEncoding.GetEncodeSize(value, false)); }
public override void EncodeObject(object value, bool arrayEncoding, ByteBuffer buffer) { Array array = (Array)value; int width; int encodeSize = ArrayEncoding.GetEncodeSize(array, arrayEncoding, out width); AmqpBitConverter.WriteUByte(buffer, width == FixedWidth.UByte ? (byte)FormatCode.Array8 : (byte)FormatCode.Array32); ArrayEncoding.Encode(array, width, encodeSize, buffer); }
public override void EncodeObject(object value, bool arrayEncoding, ByteBuffer buffer) { int num; Array arrays = (Array)value; int encodeSize = ArrayEncoding.GetEncodeSize(arrays, arrayEncoding, out num); AmqpBitConverter.WriteUByte(buffer, (byte)((num == 1 ? 224 : 240))); ArrayEncoding.Encode(arrays, num, encodeSize, buffer); }
public static void Encode <T>(T[] value, ByteBuffer buffer) { if (value == null) { AmqpEncoding.EncodeNull(buffer); } else { int width; int encodeSize = ArrayEncoding.GetEncodeSize(value, false, out width); AmqpBitConverter.WriteUByte(buffer, width == FixedWidth.UByte ? (byte)FormatCode.Array8 : (byte)FormatCode.Array32); ArrayEncoding.Encode(value, width, encodeSize, buffer); } }
public static void Encode <T>(T[] value, ByteBuffer buffer) { int num; if (value == null) { AmqpEncoding.EncodeNull(buffer); return; } int encodeSize = ArrayEncoding.GetEncodeSize(value, false, out num); AmqpBitConverter.WriteUByte(buffer, (byte)((num == 1 ? 224 : 240))); ArrayEncoding.Encode(value, num, encodeSize, buffer); }
public static T[] Decode <T>(ByteBuffer buffer, FormatCode formatCode) { if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null) { return(null); } int size = 0; int count = 0; AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.Array8, FormatCode.Array32, out size, out count); formatCode = AmqpEncoding.ReadFormatCode(buffer); return(ArrayEncoding.Decode <T>(buffer, size, count, formatCode)); }
public static T[] Decode <T>(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode) { int num; int num1; if (formatCode == 0) { Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer); formatCode = formatCode1; if (formatCode1 == 64) { return(null); } } AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 224, 240, out num, out num1); formatCode = AmqpEncoding.ReadFormatCode(buffer); return(ArrayEncoding.Decode <T>(buffer, num, num1, formatCode)); }
static AmqpEncoding() { AmqpEncoding.booleanEncoding = new BooleanEncoding(); AmqpEncoding.ubyteEncoding = new UByteEncoding(); AmqpEncoding.ushortEncoding = new UShortEncoding(); AmqpEncoding.uintEncoding = new UIntEncoding(); AmqpEncoding.ulongEncoding = new ULongEncoding(); AmqpEncoding.byteEncoding = new ByteEncoding(); AmqpEncoding.shortEncoding = new ShortEncoding(); AmqpEncoding.intEncoding = new IntEncoding(); AmqpEncoding.longEncoding = new LongEncoding(); AmqpEncoding.floatEncoding = new FloatEncoding(); AmqpEncoding.doubleEncoding = new DoubleEncoding(); AmqpEncoding.decimal128Encoding = new DecimalEncoding(); AmqpEncoding.charEncoding = new CharEncoding(); AmqpEncoding.timeStampEncoding = new TimeStampEncoding(); AmqpEncoding.uuidEncoding = new UuidEncoding(); AmqpEncoding.binaryEncoding = new BinaryEncoding(); AmqpEncoding.symbolEncoding = new SymbolEncoding(); AmqpEncoding.stringEncoding = new StringEncoding(); AmqpEncoding.listEncoding = new ListEncoding(); AmqpEncoding.mapEncoding = new MapEncoding(); AmqpEncoding.arrayEncoding = new ArrayEncoding(); AmqpEncoding.describedTypeEncoding = new DescribedEncoding(); Dictionary <Type, EncodingBase> types = new Dictionary <Type, EncodingBase>() { { typeof(bool), AmqpEncoding.booleanEncoding }, { typeof(byte), AmqpEncoding.ubyteEncoding }, { typeof(ushort), AmqpEncoding.ushortEncoding }, { typeof(uint), AmqpEncoding.uintEncoding }, { typeof(ulong), AmqpEncoding.ulongEncoding }, { typeof(sbyte), AmqpEncoding.byteEncoding }, { typeof(short), AmqpEncoding.shortEncoding }, { typeof(int), AmqpEncoding.intEncoding }, { typeof(long), AmqpEncoding.longEncoding }, { typeof(float), AmqpEncoding.floatEncoding }, { typeof(double), AmqpEncoding.doubleEncoding }, { typeof(decimal), AmqpEncoding.decimal128Encoding }, { typeof(char), AmqpEncoding.charEncoding }, { typeof(DateTime), AmqpEncoding.timeStampEncoding }, { typeof(Guid), AmqpEncoding.uuidEncoding }, { typeof(ArraySegment <byte>), AmqpEncoding.binaryEncoding }, { typeof(AmqpSymbol), AmqpEncoding.symbolEncoding }, { typeof(string), AmqpEncoding.stringEncoding }, { typeof(AmqpMap), AmqpEncoding.mapEncoding } }; AmqpEncoding.encodingsByType = types; Dictionary <FormatCode, EncodingBase> formatCodes = new Dictionary <FormatCode, EncodingBase>() { { 66, AmqpEncoding.booleanEncoding }, { 65, AmqpEncoding.booleanEncoding }, { 86, AmqpEncoding.booleanEncoding }, { 80, AmqpEncoding.ubyteEncoding }, { 96, AmqpEncoding.ushortEncoding }, { 112, AmqpEncoding.uintEncoding }, { 82, AmqpEncoding.uintEncoding }, { 67, AmqpEncoding.uintEncoding }, { 128, AmqpEncoding.ulongEncoding }, { 83, AmqpEncoding.ulongEncoding }, { 68, AmqpEncoding.ulongEncoding }, { 81, AmqpEncoding.byteEncoding }, { 97, AmqpEncoding.shortEncoding }, { 113, AmqpEncoding.intEncoding }, { 84, AmqpEncoding.intEncoding }, { 129, AmqpEncoding.longEncoding }, { 85, AmqpEncoding.longEncoding }, { 114, AmqpEncoding.floatEncoding }, { 130, AmqpEncoding.doubleEncoding }, { 148, AmqpEncoding.decimal128Encoding }, { 115, AmqpEncoding.charEncoding }, { 131, AmqpEncoding.timeStampEncoding }, { 152, AmqpEncoding.uuidEncoding }, { 160, AmqpEncoding.binaryEncoding }, { 176, AmqpEncoding.binaryEncoding }, { 163, AmqpEncoding.symbolEncoding }, { 179, AmqpEncoding.symbolEncoding }, { 161, AmqpEncoding.stringEncoding }, { 177, AmqpEncoding.stringEncoding }, { 69, AmqpEncoding.listEncoding }, { 192, AmqpEncoding.listEncoding }, { 208, AmqpEncoding.listEncoding }, { 193, AmqpEncoding.mapEncoding }, { 209, AmqpEncoding.mapEncoding }, { 224, AmqpEncoding.arrayEncoding }, { 240, AmqpEncoding.arrayEncoding }, { 0, AmqpEncoding.describedTypeEncoding } }; AmqpEncoding.encodingsByCode = formatCodes; }
public override object DecodeObject(ByteBuffer buffer, FormatCode formatCode) { if (formatCode == 0 && (formatCode = AmqpEncoding.ReadFormatCode(buffer)) == FormatCode.Null) { return(null); } int size = 0; int count = 0; AmqpEncoding.ReadSizeAndCount(buffer, formatCode, FormatCode.Array8, FormatCode.Array32, out size, out count); formatCode = AmqpEncoding.ReadFormatCode(buffer); Array array = null; switch (formatCode) { case FormatCode.Boolean: array = ArrayEncoding.Decode <bool>(buffer, size, count, formatCode); break; case FormatCode.UByte: array = ArrayEncoding.Decode <byte>(buffer, size, count, formatCode); break; case FormatCode.UShort: array = ArrayEncoding.Decode <ushort>(buffer, size, count, formatCode); break; case FormatCode.UInt: case FormatCode.SmallUInt: array = ArrayEncoding.Decode <uint>(buffer, size, count, formatCode); break; case FormatCode.ULong: case FormatCode.SmallULong: array = ArrayEncoding.Decode <ulong>(buffer, size, count, formatCode); break; case FormatCode.Byte: array = ArrayEncoding.Decode <sbyte>(buffer, size, count, formatCode); break; case FormatCode.Short: array = ArrayEncoding.Decode <short>(buffer, size, count, formatCode); break; case FormatCode.Int: case FormatCode.SmallInt: array = ArrayEncoding.Decode <int>(buffer, size, count, formatCode); break; case FormatCode.Long: case FormatCode.SmallLong: array = ArrayEncoding.Decode <long>(buffer, size, count, formatCode); break; case FormatCode.Float: array = ArrayEncoding.Decode <float>(buffer, size, count, formatCode); break; case FormatCode.Double: array = ArrayEncoding.Decode <double>(buffer, size, count, formatCode); break; case FormatCode.Char: array = ArrayEncoding.Decode <char>(buffer, size, count, formatCode); break; case FormatCode.TimeStamp: array = ArrayEncoding.Decode <DateTime>(buffer, size, count, formatCode); break; case FormatCode.Uuid: array = ArrayEncoding.Decode <Guid>(buffer, size, count, formatCode); break; case FormatCode.Binary32: case FormatCode.Binary8: array = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, size, count, formatCode); break; case FormatCode.String32Utf8: case FormatCode.String8Utf8: array = ArrayEncoding.Decode <string>(buffer, size, count, formatCode); break; case FormatCode.Symbol32: case FormatCode.Symbol8: array = ArrayEncoding.Decode <AmqpSymbol>(buffer, size, count, formatCode); break; case FormatCode.List32: case FormatCode.List8: array = ArrayEncoding.Decode <IList>(buffer, size, count, formatCode); break; case FormatCode.Map32: case FormatCode.Map8: array = ArrayEncoding.Decode <AmqpMap>(buffer, size, count, formatCode); break; case FormatCode.Array32: case FormatCode.Array8: array = ArrayEncoding.Decode <Array>(buffer, size, count, formatCode); break; default: throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } ; return(array); }
public override int GetObjectEncodeSize(object value, bool arrayEncoding) { return(ArrayEncoding.GetEncodeSize((Array)value, arrayEncoding)); }
static int GetEncodeSize(Array array, bool arrayEncoding) { int unused; return(ArrayEncoding.GetEncodeSize(array, arrayEncoding, out unused)); }
public static int GetEncodeSize <T>(T[] value) { return(value == null ? FixedWidth.NullEncoded : ArrayEncoding.GetEncodeSize(value, false)); }
public override object DecodeObject(ByteBuffer buffer, Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode) { if (formatCode == 0) { Microsoft.ServiceBus.Messaging.Amqp.Encoding.FormatCode formatCode1 = AmqpEncoding.ReadFormatCode(buffer); formatCode = formatCode1; if (formatCode1 == 64) { return(null); } } int num = 0; int num1 = 0; AmqpEncoding.ReadSizeAndCount(buffer, formatCode, 224, 240, out num, out num1); formatCode = AmqpEncoding.ReadFormatCode(buffer); Array arrays = null; byte num2 = formatCode; if (num2 > 152) { if (num2 > 193) { switch (num2) { case 208: { arrays = ArrayEncoding.Decode <IList>(buffer, num, num1, formatCode); return(arrays); } case 209: { break; } default: { if (num2 == 224 || num2 == 240) { arrays = ArrayEncoding.Decode <Array>(buffer, num, num1, formatCode); return(arrays); } else { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } } } } else { switch (num2) { case 160: { arrays = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, num, num1, formatCode); return(arrays); } case 161: { arrays = ArrayEncoding.Decode <string>(buffer, num, num1, formatCode); return(arrays); } case 162: { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } case 163: { arrays = ArrayEncoding.Decode <AmqpSymbol>(buffer, num, num1, formatCode); return(arrays); } default: { switch (num2) { case 176: { arrays = ArrayEncoding.Decode <ArraySegment <byte> >(buffer, num, num1, formatCode); return(arrays); } case 177: { arrays = ArrayEncoding.Decode <string>(buffer, num, num1, formatCode); return(arrays); } case 178: { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } case 179: { arrays = ArrayEncoding.Decode <AmqpSymbol>(buffer, num, num1, formatCode); return(arrays); } default: { switch (num2) { case 192: { arrays = ArrayEncoding.Decode <IList>(buffer, num, num1, formatCode); return(arrays); } case 193: { break; } default: { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } } break; } } break; } } } arrays = ArrayEncoding.Decode <AmqpMap>(buffer, num, num1, formatCode); } else { if (num2 > 97) { switch (num2) { case 112: { arrays = ArrayEncoding.Decode <uint>(buffer, num, num1, formatCode); return(arrays); } case 113: { arrays = ArrayEncoding.Decode <int>(buffer, num, num1, formatCode); return(arrays); } case 114: { arrays = ArrayEncoding.Decode <float>(buffer, num, num1, formatCode); return(arrays); } case 115: { arrays = ArrayEncoding.Decode <char>(buffer, num, num1, formatCode); return(arrays); } default: { switch (num2) { case 128: { arrays = ArrayEncoding.Decode <ulong>(buffer, num, num1, formatCode); return(arrays); } case 129: { break; } case 130: { arrays = ArrayEncoding.Decode <double>(buffer, num, num1, formatCode); return(arrays); } case 131: { arrays = ArrayEncoding.Decode <DateTime>(buffer, num, num1, formatCode); return(arrays); } default: { if (num2 == 152) { arrays = ArrayEncoding.Decode <Guid>(buffer, num, num1, formatCode); return(arrays); } else { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } } } break; } } } else { switch (num2) { case 80: { arrays = ArrayEncoding.Decode <byte>(buffer, num, num1, formatCode); return(arrays); } case 81: { arrays = ArrayEncoding.Decode <sbyte>(buffer, num, num1, formatCode); return(arrays); } case 82: { arrays = ArrayEncoding.Decode <uint>(buffer, num, num1, formatCode); return(arrays); } case 83: { arrays = ArrayEncoding.Decode <ulong>(buffer, num, num1, formatCode); return(arrays); } case 84: { arrays = ArrayEncoding.Decode <int>(buffer, num, num1, formatCode); return(arrays); } case 85: { break; } case 86: { arrays = ArrayEncoding.Decode <bool>(buffer, num, num1, formatCode); return(arrays); } default: { switch (num2) { case 96: { arrays = ArrayEncoding.Decode <ushort>(buffer, num, num1, formatCode); return(arrays); } case 97: { arrays = ArrayEncoding.Decode <short>(buffer, num, num1, formatCode); return(arrays); } default: { throw new NotSupportedException(SRClient.NotSupportFrameCode(formatCode)); } } break; } } } arrays = ArrayEncoding.Decode <long>(buffer, num, num1, formatCode); } return(arrays); }
private static int GetEncodeSize(Array array, bool arrayEncoding) { int num; return(ArrayEncoding.GetEncodeSize(array, arrayEncoding, out num)); }