Exemplo n.º 1
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));
        }
Exemplo n.º 2
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;
        }