public void SetQuoteEntryID(int index, byte value)
                {
                    if (index < 0 || index >= 10)
                    {
                        throw new IndexOutOfRangeException("index out of range: index=" + index);
                    }

                    _buffer.CharPut(_offset + 0 + (index * 1), value);
                }
Example #2
0
        public void SetSecurityGroup(int index, byte value)
        {
            if (index < 0 || index >= 6)
            {
                throw new IndexOutOfRangeException("index out of range: index=" + index);
            }

            _buffer.CharPut(_offset + 10 + (index * 1), value);
        }
        public void SetEnteringTrader(int index, byte value)
        {
            if ((uint)index >= 5)
            {
                ThrowHelper.ThrowIndexOutOfRangeException(index);
            }

            _buffer.CharPut(_offset + 44 + (index * 1), value);
        }
Example #4
0
        public void SetSessionID(int index, byte value)
        {
            if ((uint)index >= 10)
            {
                ThrowHelper.ThrowIndexOutOfRangeException(index);
            }

            _buffer.CharPut(_offset + 0 + (index * 1), value);
        }
Example #5
0
        public void SetManufacturerCode(int index, byte value)
        {
            if (index < 0 || index >= 3)
            {
                throw new IndexOutOfRangeException("index out of range: index=" + index);
            }

            _buffer.CharPut(_offset + 3 + (index * 1), value);
        }
        public void SetVehicleCode(int index, byte value)
        {
            if (index < 0 || index >= 6)
            {
                throw new IndexOutOfRangeException("index out of range: index=" + index);
            }

            _buffer.CharPut(_offset + 32 + (index * 1), value);
        }
Example #7
0
        public void SetVehicleCode(int index, byte value)
        {
            if ((uint)index >= 6)
            {
                ThrowHelper.ThrowIndexOutOfRangeException(index);
            }

            _buffer.CharPut(_offset + 28 + (index * 1), value);
        }
Example #8
0
        public void SetManufacturerCode(int index, byte value)
        {
            if ((uint)index >= 3)
            {
                ThrowHelper.ThrowIndexOutOfRangeException(index);
            }

            _buffer.CharPut(_offset + 3 + (index * 1), value);
        }
        public void ShouldPutByte(byte value, int index)
        {
            _directBuffer.CharPut(index, value);

            Assert.AreEqual(value, _buffer[index]);
        }
Example #10
0
        public static int Put(DirectBuffer buffer, PrimitiveValue value, PrimitiveType type)
        {
            if (value == null)
            {
                return(0);
            }

            switch (type.Type)
            {
            case SbePrimitiveType.Char:
                if (value.Size == 1)
                {
                    buffer.CharPut(0, (byte)value.LongValue());
                    return(1);
                }
                else
                {
                    var byteArrayValue = value.ByteArrayValue();
                    buffer.SetBytes(0, byteArrayValue, 0, byteArrayValue.Length);
                    return(byteArrayValue.Length);
                }

            case SbePrimitiveType.Int8:
                buffer.Int8Put(0, (sbyte)value.LongValue());
                return(1);

            case SbePrimitiveType.Int16:
                buffer.Int16PutLittleEndian(0, (short)value.LongValue());
                return(2);

            case SbePrimitiveType.Int32:
                buffer.Int32PutLittleEndian(0, (int)value.LongValue());
                return(4);

            case SbePrimitiveType.Int64:
                buffer.Int64PutLittleEndian(0, value.LongValue());
                return(8);

            case SbePrimitiveType.UInt8:
                buffer.Uint8Put(0, (byte)value.LongValue());
                return(1);

            case SbePrimitiveType.UInt16:
                buffer.Uint16PutLittleEndian(0, (ushort)value.LongValue());
                return(2);

            case SbePrimitiveType.UInt32:
                buffer.Uint32PutLittleEndian(0, (uint)value.LongValue());
                return(4);

            case SbePrimitiveType.UInt64:
                buffer.Uint64PutLittleEndian(0, value.ULongValue());
                return(8);

            case SbePrimitiveType.Float:
                buffer.FloatPutLittleEndian(0, (float)value.DoubleValue());
                return(4);

            case SbePrimitiveType.Double:
                buffer.DoublePutLittleEndian(0, value.DoubleValue());
                return(8);

            default:
                return(0);
            }
        }
Example #11
0
        public static int Put(DirectBuffer buffer, PrimitiveValue value, PrimitiveType type)
        {
            if (value == null)
            {
                return 0;
            }

            switch (type.Type)
            {
                case SbePrimitiveType.Char:
                    if (value.Size == 1)
                    {
                        buffer.CharPut(0, (byte)value.LongValue());
                        return 1;
                    }
                    else
                    {
                        var byteArrayValue = value.ByteArrayValue();
                        buffer.SetBytes(0, byteArrayValue, 0, byteArrayValue.Length);
                        return byteArrayValue.Length;
                    }

                case SbePrimitiveType.Int8:
                    buffer.Int8Put(0, (sbyte)value.LongValue());
                    return 1;

                case SbePrimitiveType.Int16:
                    buffer.Int16PutLittleEndian(0, (short)value.LongValue());
                    return 2;

                case SbePrimitiveType.Int32:
                    buffer.Int32PutLittleEndian(0, (int)value.LongValue());
                    return 4;

                case SbePrimitiveType.Int64:
                    buffer.Int64PutLittleEndian(0, value.LongValue());
                    return 8;

                case SbePrimitiveType.UInt8:
                    buffer.Uint8Put(0, (byte)value.LongValue());
                    return 1;

                case SbePrimitiveType.UInt16:
                    buffer.Uint16PutLittleEndian(0, (ushort)value.LongValue());
                    return 2;

                case SbePrimitiveType.UInt32:
                    buffer.Uint32PutLittleEndian(0, (uint) value.LongValue());
                    return 4;

                case SbePrimitiveType.UInt64:
                    buffer.Uint64PutLittleEndian(0, value.ULongValue());
                    return 8;

                case SbePrimitiveType.Float:
                    buffer.FloatPutLittleEndian(0, (float) value.DoubleValue());
                    return 4;

                case SbePrimitiveType.Double:
                    buffer.DoublePutLittleEndian(0, value.DoubleValue());
                    return 8;

                default:
                    return 0;
            }
        }
Example #12
0
        private int WriteUpdateValue(IReactiveTable table, TableUpdate tableUpdate, DirectBuffer buffer, int offset)
        {
            var column = tableUpdate.Column;

            if (column.Type == typeof(int))
            {
                buffer.Int32PutLittleEndian(offset, table.GetValue <int>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(int));
            }
            if (column.Type == typeof(short))
            {
                buffer.Int16PutLittleEndian(offset, table.GetValue <short>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(short));
            }
            if (column.Type == typeof(string))
            {
                var stringValue = table.GetValue <string>(column.ColumnId, tableUpdate.RowIndex) ?? string.Empty;
                // Set the length
                var length = (ushort)stringValue.Length;
                buffer.Uint16PutLittleEndian(offset, length);
                var written = sizeof(ushort);
                offset += written;
                // And then the value
                var bytesWritten = Encoding.Default.GetBytes(stringValue, 0, stringValue.Length, _stringBuffer, 0);
                _buffer.SetBytes(offset, _stringBuffer, 0, bytesWritten);
                written += bytesWritten;
                //written += WriteStringToByteArray(stringValue, _byteArray, offset);
                return(written);
            }
            if (column.Type == typeof(bool))
            {
                buffer.CharPut(offset, (byte)(table.GetValue <bool>(column.ColumnId, tableUpdate.RowIndex) ? 1 : 0));
                return(sizeof(byte));
            }
            if (column.Type == typeof(double))
            {
                var value = table.GetValue <double>(column.ColumnId, tableUpdate.RowIndex);
                buffer.DoublePutLittleEndian(offset, value);
                return(sizeof(double));
            }
            if (column.Type == typeof(long))
            {
                buffer.Int64PutLittleEndian(offset, table.GetValue <long>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(long));
            }
            if (column.Type == typeof(decimal))
            {
                var decimalVal = table.GetValue <decimal>(column.ColumnId, tableUpdate.RowIndex);
                _decimalGetBytes(decimalVal, _decimalBuffer);
                buffer.SetBytes(offset, _decimalBuffer, 0, _decimalBuffer.Length);
                return(_decimalBuffer.Length);
            }
            if (column.Type == typeof(DateTime))
            {
                throw new NotImplementedException();
            }
            if (column.Type == typeof(TimeSpan))
            {
                throw new NotImplementedException();
            }
            if (column.Type == typeof(Guid))
            {
                throw new NotImplementedException();
            }
            if (column.Type == typeof(float))
            {
                buffer.FloatPutLittleEndian(offset, table.GetValue <float>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(float));
            }
            if (column.Type == typeof(byte))
            {
                buffer.CharPut(offset, table.GetValue <byte>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(byte));
            }
            if (column.Type == typeof(char))
            {
                buffer.Uint16PutLittleEndian(offset, table.GetValue <char>(column.ColumnId, tableUpdate.RowIndex));
                return(sizeof(char));
            }
            return(0);
        }
        private void FillValue(DirectBuffer buffer, SbeField field2, ref int offset)
        {
            if (field2.Presence.ToLower().Contains("constant"))
            {
                return;
            }

            SbeField field = field2.Clone();

            if (field.PrimitiveType == null)
            {
                field.PrimitiveType = field.Type;
            }

            if (field.PrimitiveType.ToLower().Equals("uint8"))
            {
                field2.Value = buffer.Uint8Get(offset).ToString();
                offset      += 1;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint16"))
            {
                field2.Value = buffer.Uint16GetLittleEndian(offset).ToString();
                offset      += 2;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint32"))
            {
                field2.Value = buffer.Uint32GetLittleEndian(offset).ToString();
                offset      += 4;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint64"))
            {
                field2.Value = buffer.Uint64GetLittleEndian(offset).ToString();
                offset      += 8;
            }
            else if (field.PrimitiveType.ToLower().Equals("int8"))
            {
                field2.Value = buffer.Int8Get(offset).ToString();
                offset      += 1;
            }
            else if (field.PrimitiveType.ToLower().Equals("int16"))
            {
                field2.Value = buffer.Int16GetLittleEndian(offset).ToString();
                offset      += 2;
            }
            else if (field.PrimitiveType.ToLower().Equals("int32"))
            {
                field2.Value = buffer.Int32GetLittleEndian(offset).ToString();
                offset      += 4;
            }
            else if (field.PrimitiveType.ToLower().Equals("int64"))
            {
                field2.Value = buffer.Int64GetLittleEndian(offset).ToString();
                offset      += 8;
            }
            else if (field.PrimitiveType.ToLower().Equals("char"))
            {
                if (!String.IsNullOrEmpty(field.CharacterEncoding))
                {
                    List <byte> charString = new List <byte>();
                    for (int i = 0; i < field.Length; i++)
                    {
                        charString.Add(buffer.CharGet(offset + i));
                    }
                    field2.Value = Encoding.GetEncoding(field.CharacterEncoding).GetString(charString.ToArray());
                }
                else
                {
                    byte[] charString = Encoding.GetEncoding("UTF-8").GetBytes(field.Value);
                    buffer.CharPut(offset, charString[0]);
                }

                offset += field.Length.Value;
            }

            if (field2.Fields != null && field2.Fields.Count > 0)
            {
                if (!field2.Type.ToLower().EndsWith("encoding"))
                {
                    foreach (SbeField child in field2.Fields)
                    {
                        FillValue(buffer, child, ref offset);
                    }
                }
                else
                {
                    FillValue(buffer, field2.Fields[0], ref offset);
                    List <byte> charString = new List <byte>();
                    int         len        = int.Parse(field2.Fields[0].Value);
                    for (int i = 0; i < len; i++)
                    {
                        charString.Add(buffer.CharGet(offset + i));
                    }
                    field2.Fields[1].Value = Encoding.GetEncoding(field2.Fields[1].CharacterEncoding).GetString(charString.ToArray());
                    offset += len;
                }
            }
        }
        private void SetField(DirectBuffer buffer, SbeField field2, ref int offset)
        {
            SbeField field = field2.Clone();

            if (field.PrimitiveType == null)
            {
                field.PrimitiveType = field.Type;
            }

            if (field.PrimitiveType.ToLower().Equals("uint8"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Uint8Put(offset, (byte)int.Parse(field.Value));
                }
                offset += 1;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint16"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Uint16PutLittleEndian(offset, ushort.Parse(field.Value));
                }
                offset += 2;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint32"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Uint32PutLittleEndian(offset, uint.Parse(field.Value));
                }
                offset += 4;
            }
            else if (field.PrimitiveType.ToLower().Equals("uint64"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Uint64PutLittleEndian(offset, ulong.Parse(field.Value));
                }
                offset += 8;
            }
            else if (field.PrimitiveType.ToLower().Equals("int8"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Int8Put(offset, (sbyte)int.Parse(field.Value));
                }
                offset += 1;
            }
            else if (field.PrimitiveType.ToLower().Equals("int16"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Int16PutLittleEndian(offset, short.Parse(field.Value));
                }
                offset += 2;
            }
            else if (field.PrimitiveType.ToLower().Equals("int32"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Int32PutLittleEndian(offset, int.Parse(field.Value));
                }
                offset += 4;
            }
            else if (field.PrimitiveType.ToLower().Equals("int64"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    buffer.Int64PutLittleEndian(offset, long.Parse(field.Value));
                }
                offset += 8;
            }
            else if (field.PrimitiveType.ToLower().Equals("char"))
            {
                if (!string.IsNullOrEmpty(field.Value))
                {
                    if (!String.IsNullOrEmpty(field.CharacterEncoding))
                    {
                        byte[] charString = Encoding.GetEncoding(field.CharacterEncoding).GetBytes(field.Value);
                        int    temp       = offset;
                        foreach (byte m in charString)
                        {
                            buffer.CharPut(temp, m);
                            temp++;
                        }
                    }
                    else
                    {
                        byte[] charString = Encoding.GetEncoding("UTF-8").GetBytes(field.Value);
                        buffer.CharPut(offset, charString[0]);
                    }
                }
                offset += field.Length.Value;
            }
        }