/// <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));
        }
Exemple #2
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);
                reader.Read(buffer, 0, length);
                rowValues[i] = TypeCodec.Decode(_protocolVersion, buffer, c.TypeCode, c.TypeInfo);
            }

            return new Row(rowValues, _metadata.Columns, _metadata.ColumnIndexes);
        }
Exemple #3
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);
                reader.Read(buffer, 0, length);
                rowValues[i] = TypeCodec.Decode(_protocolVersion, buffer, c.TypeCode, c.TypeInfo);
            }

            return(new Row(rowValues, _metadata.Columns, _metadata.ColumnIndexes));
        }