internal OutputSchemaChange(FrameReader reader, Guid? traceId)
 {
     TraceId = traceId;
     Change = reader.ReadString();
     Keyspace = reader.ReadString();
     Table = reader.ReadString();
 }
Esempio n. 2
0
 internal OutputRows(FrameReader reader, Guid?traceId)
 {
     _metadata  = new RowSetMetadata(reader);
     _rowLength = reader.ReadInt32();
     TraceId    = traceId;
     RowSet     = new RowSet();
     ProcessRows(RowSet, reader);
 }
Esempio n. 3
0
 internal OutputRows(FrameReader reader, Guid? traceId)
 {
     _metadata = new RowSetMetadata(reader);
     _rowLength = reader.ReadInt32();
     TraceId = traceId;
     RowSet = new RowSet();
     ProcessRows(RowSet, reader);
 }
Esempio n. 4
0
 internal OutputRows(byte protocolVersion, FrameReader reader, Guid?traceId)
 {
     _protocolVersion = protocolVersion;
     _metadata        = new RowSetMetadata(reader);
     _rowLength       = reader.ReadInt32();
     TraceId          = traceId;
     RowSet           = new RowSet();
     ProcessRows(RowSet, reader);
 }
Esempio n. 5
0
 protected override void Load(FrameReader reader)
 {
     _exception = new FunctionFailureException(Message)
     {
         Keyspace      = reader.ReadString(),
         Name          = reader.ReadString(),
         ArgumentTypes = reader.ReadStringList()
     };
 }
Esempio n. 6
0
 internal OutputRows(byte protocolVersion, FrameReader reader, Guid? traceId)
 {
     _protocolVersion = protocolVersion;
     _metadata = new RowSetMetadata(reader);
     _rowLength = reader.ReadInt32();
     TraceId = traceId;
     RowSet = new RowSet();
     ProcessRows(RowSet, reader);
 }
 protected override void Load(FrameReader reader)
 {
     _exception = new FunctionFailureException(Message)
     {
         Keyspace = reader.ReadString(),
         Name = reader.ReadString(),
         ArgumentTypes = reader.ReadStringList()
     };
 }
Esempio n. 8
0
 internal OutputOptions(FrameReader reader)
 {
     _options = new Dictionary<string, string[]>();
     int n = reader.ReadUInt16();
     for (var i = 0; i < n; i++)
     {
         var k = reader.ReadString();
         var v = reader.ReadStringList();
         _options.Add(k, v);
     }
 }
Esempio n. 9
0
 /// <summary>
 /// Process rows and sets the paging event handler
 /// </summary>
 internal void ProcessRows(RowSet rs, FrameReader reader)
 {
     if (_metadata != null)
     {
         rs.Columns = _metadata.Columns;
         rs.PagingState = _metadata.PagingState;
     }
     for (var i = 0; i < _rowLength; i++)
     {
         rs.AddRow(ProcessRowItem(reader));
     }
 }
        internal OutputOptions(FrameReader reader)
        {
            _options = new Dictionary <string, string[]>();
            int n = reader.ReadUInt16();

            for (var i = 0; i < n; i++)
            {
                var k = reader.ReadString();
                var v = reader.ReadStringList();
                _options.Add(k, v);
            }
        }
Esempio n. 11
0
 /// <summary>
 /// Process rows and sets the paging event handler
 /// </summary>
 internal void ProcessRows(RowSet rs, FrameReader reader)
 {
     if (_metadata != null)
     {
         rs.Columns     = _metadata.Columns;
         rs.PagingState = _metadata.PagingState;
     }
     for (var i = 0; i < _rowLength; i++)
     {
         rs.AddRow(ProcessRowItem(reader));
     }
 }
Esempio n. 12
0
 internal static OutputError CreateOutputError(int code, string message, FrameReader cb)
 {
     var factoryMethod = OutputErrorFactoryMethods[code];
     if (factoryMethod == null)
     {
         throw new DriverInternalError("unknown error" + code);
     }
     var error = factoryMethod();
     error.Message = message;
     error.Code = code;
     error.Load(cb);
     return error;
 }
Esempio n. 13
0
        /// <summary>
        ///
        /// </summary>
        internal static IDictionary <IPAddress, int> GetReasonsDictionary(FrameReader reader, int length)
        {
            var reasons = new Dictionary <IPAddress, int>(length);

            for (var i = 0; i < length; i++)
            {
                var buffer = new byte[reader.ReadByte()];
                reader.Read(buffer, 0, buffer.Length);
                reasons[new IPAddress(buffer)] = reader.ReadUInt16();
            }

            return(new ReadOnlyDictionary <IPAddress, int>(reasons));
        }
Esempio n. 14
0
        internal static OutputError CreateOutputError(int code, string message, FrameReader cb)
        {
            if (!OutputErrorFactoryMethods.TryGetValue(code, out Func <OutputError> factoryMethod))
            {
                throw new DriverInternalError(string.Format("Received unknown error with code {0} and message {1}", code, message));
            }

            var error = factoryMethod();

            error.Message = message;
            error.Code    = code;
            error.Load(cb);
            return(error);
        }
        internal static OutputError CreateOutputError(int code, string message, FrameReader cb)
        {
            var factoryMethod = OutputErrorFactoryMethods[code];

            if (factoryMethod == null)
            {
                throw new DriverInternalError("unknown error" + code);
            }
            var error = factoryMethod();

            error.Message = message;
            error.Code    = code;
            error.Load(cb);
            return(error);
        }
Esempio n. 16
0
        protected override void Load(FrameReader reader)
        {
            _consistencyLevel = (ConsistencyLevel)reader.ReadInt16();
            _received         = reader.ReadInt32();
            _blockFor         = reader.ReadInt32();
            if (_isFailure)
            {
                _failures = reader.ReadInt32();

                if (reader.Serializer.ProtocolVersion.SupportsFailureReasons())
                {
                    _reasons = OutputReadTimeout.GetReasonsDictionary(reader, _failures);
                }
            }
            _writeType = reader.ReadString();
        }
Esempio n. 17
0
        protected override void Load(FrameReader reader)
        {
            _consistency = (ConsistencyLevel)reader.ReadInt16();
            _received    = reader.ReadInt32();
            _blockFor    = reader.ReadInt32();

            if (_isFailure)
            {
                _failures = reader.ReadInt32();

                if (reader.Serializer.ProtocolVersion.SupportsFailureReasons())
                {
                    _reasons = GetReasonsDictionary(reader, _failures);
                }
            }

            _dataPresent = reader.ReadByte() != 0;
        }
Esempio n. 18
0
        internal virtual Row ProcessRowItem(FrameReader reader)
        {
            var rowValues = new object[_metadata.Columns.Length];
            for (var i = 0; i < _metadata.Columns.Length; i++)
            {
                var c = _metadata.Columns[i];
                var length = reader.ReadInt32();
                if (length < 0)
                {
                    rowValues[i] = null;
                    continue;
                }
                var buffer = GetBuffer(length, c.TypeCode);
                rowValues[i] = reader.ReadFromBytes(buffer, 0, length, c.TypeCode, c.TypeInfo);
            }

            return new Row(rowValues, _metadata.Columns, _metadata.ColumnIndexes);
        }
Esempio n. 19
0
        internal virtual Row ProcessRowItem(FrameReader reader)
        {
            var rowValues = new object[_metadata.Columns.Length];

            for (var i = 0; i < _metadata.Columns.Length; i++)
            {
                var c      = _metadata.Columns[i];
                var length = reader.ReadInt32();
                if (length < 0)
                {
                    rowValues[i] = null;
                    continue;
                }
                var buffer = GetBuffer(length, c.TypeCode);
                rowValues[i] = reader.ReadFromBytes(buffer, 0, length, c.TypeCode, c.TypeInfo);
            }

            return(new Row(rowValues, _metadata.Columns, _metadata.ColumnIndexes));
        }
Esempio n. 20
0
        private IColumnInfo GetColumnInfo(FrameReader reader, ColumnTypeCode code)
        {
            ColumnTypeCode innercode;

            switch (code)
            {
            case ColumnTypeCode.List:
                innercode = (ColumnTypeCode)reader.ReadUInt16();
                return(new ListColumnInfo
                {
                    ValueTypeCode = innercode,
                    ValueTypeInfo = GetColumnInfo(reader, innercode)
                });

            case ColumnTypeCode.Map:
                innercode = (ColumnTypeCode)reader.ReadUInt16();
                IColumnInfo kci        = GetColumnInfo(reader, innercode);
                var         vinnercode = (ColumnTypeCode)reader.ReadUInt16();
                IColumnInfo vci        = GetColumnInfo(reader, vinnercode);
                return(new MapColumnInfo
                {
                    KeyTypeCode = innercode,
                    KeyTypeInfo = kci,
                    ValueTypeCode = vinnercode,
                    ValueTypeInfo = vci
                });

            case ColumnTypeCode.Set:
                innercode = (ColumnTypeCode)reader.ReadUInt16();
                return(new SetColumnInfo
                {
                    KeyTypeCode = innercode,
                    KeyTypeInfo = GetColumnInfo(reader, innercode)
                });

            case ColumnTypeCode.Custom:
                return(new CustomColumnInfo {
                    CustomTypeName = reader.ReadString()
                });

            case ColumnTypeCode.Udt:
                var udtInfo     = new UdtColumnInfo(reader.ReadString() + "." + reader.ReadString());
                var fieldLength = reader.ReadInt16();
                for (var i = 0; i < fieldLength; i++)
                {
                    var dataType = new ColumnDesc
                    {
                        Name     = reader.ReadString(),
                        TypeCode = (ColumnTypeCode)reader.ReadUInt16(),
                    };

                    dataType.TypeInfo = GetColumnInfo(reader, dataType.TypeCode);
                    udtInfo.Fields.Add(dataType);
                }
                return(udtInfo);

            case ColumnTypeCode.Tuple:
            {
                var tupleInfo     = new TupleColumnInfo();
                var elementLength = reader.ReadInt16();
                for (var i = 0; i < elementLength; i++)
                {
                    var dataType = new ColumnDesc
                    {
                        TypeCode = (ColumnTypeCode)reader.ReadUInt16(),
                    };
                    dataType.TypeInfo = GetColumnInfo(reader, dataType.TypeCode);
                    tupleInfo.Elements.Add(dataType);
                }
                return(tupleInfo);
            }

            default:
                return(null);
            }
        }
Esempio n. 21
0
        internal RowSetMetadata(FrameReader reader, bool parsePartitionKeys = false)
        {
            if (reader == null)
            {
                //Allow to be created for unit tests
                return;
            }
            var flags        = (RowSetMetadataFlags)reader.ReadInt32();
            var columnLength = reader.ReadInt32();

            if (parsePartitionKeys)
            {
                PartitionKeys = new int[reader.ReadInt32()];
                for (var i = 0; i < PartitionKeys.Length; i++)
                {
                    PartitionKeys[i] = reader.ReadInt16();
                }
            }

            string gKsname    = null;
            string gTablename = null;

            if ((flags & RowSetMetadataFlags.HasMorePages) == RowSetMetadataFlags.HasMorePages)
            {
                PagingState = reader.ReadBytes();
            }
            if ((flags & RowSetMetadataFlags.NoMetadata) == RowSetMetadataFlags.NoMetadata)
            {
                return;
            }
            if ((flags & RowSetMetadataFlags.GlobalTablesSpec) == RowSetMetadataFlags.GlobalTablesSpec)
            {
                gKsname    = reader.ReadString();
                gTablename = reader.ReadString();
            }

            Columns       = new CqlColumn[columnLength];
            ColumnIndexes = new Dictionary <string, int>(columnLength);
            for (var i = 0; i < columnLength; i++)
            {
                var col = new CqlColumn {
                    Index = i
                };
                if ((flags & RowSetMetadataFlags.GlobalTablesSpec) == 0)
                {
                    col.Keyspace = reader.ReadString();
                    col.Table    = reader.ReadString();
                }
                else
                {
                    col.Keyspace = gKsname;
                    col.Table    = gTablename;
                }
                col.Name                = reader.ReadString();
                col.TypeCode            = (ColumnTypeCode)reader.ReadUInt16();
                col.TypeInfo            = GetColumnInfo(reader, col.TypeCode);
                col.Type                = reader.Serializer.GetClrType(col.TypeCode, col.TypeInfo);
                Columns[i]              = col;
                ColumnIndexes[col.Name] = i;
            }
            Keyspace = gKsname ?? (columnLength > 0 ? Columns[0].Keyspace : null);
        }
Esempio n. 22
0
        private IColumnInfo GetColumnInfo(FrameReader reader, ColumnTypeCode code)
        {
            ColumnTypeCode innercode;
            switch (code)
            {
                case ColumnTypeCode.List:
                    innercode = (ColumnTypeCode) reader.ReadUInt16();
                    return new ListColumnInfo
                    {
                        ValueTypeCode = innercode,
                        ValueTypeInfo = GetColumnInfo(reader, innercode)
                    };
                case ColumnTypeCode.Map:
                    innercode = (ColumnTypeCode) reader.ReadUInt16();
                    IColumnInfo kci = GetColumnInfo(reader, innercode);
                    var vinnercode = (ColumnTypeCode) reader.ReadUInt16();
                    IColumnInfo vci = GetColumnInfo(reader, vinnercode);
                    return new MapColumnInfo
                    {
                        KeyTypeCode = innercode,
                        KeyTypeInfo = kci,
                        ValueTypeCode = vinnercode,
                        ValueTypeInfo = vci
                    };
                case ColumnTypeCode.Set:
                    innercode = (ColumnTypeCode) reader.ReadUInt16();
                    return new SetColumnInfo
                    {
                        KeyTypeCode = innercode,
                        KeyTypeInfo = GetColumnInfo(reader, innercode)
                    };
                case ColumnTypeCode.Custom:
                    return new CustomColumnInfo { CustomTypeName = reader.ReadString() };
                case ColumnTypeCode.Udt:
                    var udtInfo = new UdtColumnInfo(reader.ReadString() + "." + reader.ReadString());
                    var fieldLength = reader.ReadInt16();
                    for (var i = 0; i < fieldLength; i++)
                    {
                        var dataType = new ColumnDesc
                        {
                            Name = reader.ReadString(),
                            TypeCode = (ColumnTypeCode) reader.ReadUInt16(),
                        };

                        dataType.TypeInfo = GetColumnInfo(reader, dataType.TypeCode);
                        udtInfo.Fields.Add(dataType);
                    }
                    return udtInfo;
                case ColumnTypeCode.Tuple:
                {
                    var tupleInfo = new TupleColumnInfo();
                    var elementLength = reader.ReadInt16();
                    for (var i = 0; i < elementLength; i++)
                    {
                        var dataType = new ColumnDesc
                        {
                            TypeCode = (ColumnTypeCode) reader.ReadUInt16(),
                        };
                        dataType.TypeInfo = GetColumnInfo(reader, dataType.TypeCode);
                        tupleInfo.Elements.Add(dataType);
                    }
                    return tupleInfo;
                }
                default:
                    return null;
            }
        }
        internal RowSetMetadata(FrameReader reader, bool parsePartitionKeys = false)
        {
            if (reader == null)
            {
                //Allow to be created for unit tests
                return;
            }
            var coldat          = new List <ColumnDesc>();
            var flags           = (RowSetMetadataFlags)reader.ReadInt32();
            var numberOfcolumns = reader.ReadInt32();

            if (parsePartitionKeys)
            {
                PartitionKeys = new int[reader.ReadInt32()];
                for (var i = 0; i < PartitionKeys.Length; i++)
                {
                    PartitionKeys[i] = reader.ReadInt16();
                }
            }

            string gKsname    = null;
            string gTablename = null;

            if ((flags & RowSetMetadataFlags.HasMorePages) == RowSetMetadataFlags.HasMorePages)
            {
                PagingState = reader.ReadBytes();
            }

            if ((flags & RowSetMetadataFlags.NoMetadata) == RowSetMetadataFlags.NoMetadata)
            {
                return;
            }
            if ((flags & RowSetMetadataFlags.GlobalTablesSpec) == RowSetMetadataFlags.GlobalTablesSpec)
            {
                gKsname    = reader.ReadString();
                gTablename = reader.ReadString();
            }

            for (var i = 0; i < numberOfcolumns; i++)
            {
                var col = new ColumnDesc();
                if ((flags & RowSetMetadataFlags.GlobalTablesSpec) != RowSetMetadataFlags.GlobalTablesSpec)
                {
                    col.Keyspace = reader.ReadString();
                    col.Table    = reader.ReadString();
                }
                else
                {
                    col.Keyspace = gKsname;
                    col.Table    = gTablename;
                }
                col.Name     = reader.ReadString();
                col.TypeCode = (ColumnTypeCode)reader.ReadUInt16();
                col.TypeInfo = GetColumnInfo(reader, col.TypeCode);
                coldat.Add(col);
            }
            var rawColumns = coldat.ToArray();

            Columns       = new CqlColumn[rawColumns.Length];
            ColumnIndexes = new Dictionary <string, int>();
            for (var i = 0; i < rawColumns.Length; i++)
            {
                Columns[i] = new CqlColumn
                {
                    Name     = rawColumns[i].Name,
                    Keyspace = rawColumns[i].Keyspace,
                    Table    = rawColumns[i].Table,
                    Type     = reader.Serializer.GetClrType(
                        rawColumns[i].TypeCode,
                        rawColumns[i].TypeInfo),
                    TypeCode = rawColumns[i].TypeCode,
                    TypeInfo = rawColumns[i].TypeInfo,
                    Index    = i
                };

                ColumnIndexes[rawColumns[i].Name] = i;
            }
        }
 protected abstract void Load(FrameReader reader);
Esempio n. 25
0
 internal OutputSchemaChange(ProtocolVersion protocolVersion, FrameReader reader, Guid?traceId)
 {
     TraceId = traceId;
     SchemaChangeEventArgs = EventResponse.ParseSchemaChangeBody(protocolVersion, reader);
 }
Esempio n. 26
0
        internal RowSetMetadata(FrameReader reader, bool parsePartitionKeys = false)
        {
            if (reader == null)
            {
                //Allow to be created for unit tests
                return;
            }
            var coldat = new List<ColumnDesc>();
            var flags = (RowSetMetadataFlags) reader.ReadInt32();
            var numberOfcolumns = reader.ReadInt32();

            if (parsePartitionKeys)
            {
                PartitionKeys = new int[reader.ReadInt32()];
                for (var i = 0; i < PartitionKeys.Length; i++)
                {
                    PartitionKeys[i] = reader.ReadInt16();
                }
            }

            string gKsname = null;
            string gTablename = null;

            if ((flags & RowSetMetadataFlags.HasMorePages) == RowSetMetadataFlags.HasMorePages)
            {
                PagingState = reader.ReadBytes();
            }

            if ((flags & RowSetMetadataFlags.NoMetadata) == RowSetMetadataFlags.NoMetadata)
            {
                return;
            }
            if ((flags & RowSetMetadataFlags.GlobalTablesSpec) == RowSetMetadataFlags.GlobalTablesSpec)
            {
                gKsname = reader.ReadString();
                gTablename = reader.ReadString();
            }

            for (var i = 0; i < numberOfcolumns; i++)
            {
                var col = new ColumnDesc();
                if ((flags & RowSetMetadataFlags.GlobalTablesSpec) != RowSetMetadataFlags.GlobalTablesSpec)
                {
                    col.Keyspace = reader.ReadString();
                    col.Table = reader.ReadString();
                }
                else
                {
                    col.Keyspace = gKsname;
                    col.Table = gTablename;
                }
                col.Name = reader.ReadString();
                col.TypeCode = (ColumnTypeCode) reader.ReadUInt16();
                col.TypeInfo = GetColumnInfo(reader, col.TypeCode);
                coldat.Add(col);
            }
            var rawColumns = coldat.ToArray();

            Columns = new CqlColumn[rawColumns.Length];
            ColumnIndexes = new Dictionary<string, int>();
            for (var i = 0; i < rawColumns.Length; i++)
            {
                Columns[i] = new CqlColumn
                {
                    Name = rawColumns[i].Name,
                    Keyspace = rawColumns[i].Keyspace,
                    Table = rawColumns[i].Table,
                    Type = reader.Serializer.GetClrType(
                        rawColumns[i].TypeCode,
                        rawColumns[i].TypeInfo),
                    TypeCode = rawColumns[i].TypeCode,
                    TypeInfo = rawColumns[i].TypeInfo,
                    Index = i
                };

                ColumnIndexes[rawColumns[i].Name] = i;
            }
        }
Esempio n. 27
0
 protected abstract void Load(FrameReader reader);