Esempio n. 1
0
        public static BitReaderWriter ReadFrom(BitStream stream)
        {
            Debug.Assert(stream.Reading, "Read stream should be set for reading!");

            // Move current position after the data
            uint dataBitLen = stream.ReadUInt32Variant();
            var reader = new BitReaderWriter(stream, stream.BitPosition);
            stream.SetBitPositionRead(stream.BitPosition + (int)dataBitLen);
            return reader;
        }
Esempio n. 2
0
        public static BitReaderWriter ReadFrom(BitStream stream)
        {
            Debug.Assert(stream.Reading, "Read stream should be set for reading!");

            // Move current position after the data
            uint dataBitLen = stream.ReadUInt32Variant();
            var  reader     = new BitReaderWriter(stream, stream.BitPosition);

            stream.SetBitPositionRead(stream.BitPosition + (int)dataBitLen);
            return(reader);
        }
Esempio n. 3
0
        /// <summary>
        /// Returns false when validation was required and failed, otherwise true.
        /// </summary>
        public bool ReadData(IBitSerializable readDataInto, bool validate)
        {
            Debug.Assert(m_readStream != null, "Local invocation is not supported for BitReaderWriter");
            //if (m_readStream == null)
            //{
            //    tmpStream.ResetWrite();
            //    Write(tmpStream);
            //    tmpStream.ResetRead();
            //    return ReadFrom(tmpStream).ReadData(readDataInto, validate, null);
            //}

            int oldPos = m_readStream.BitPosition;

            m_readStream.SetBitPositionRead(m_readStreamPosition);
            try
            {
                return(readDataInto.Serialize(m_readStream, validate));
            }
            finally
            {
                m_readStream.SetBitPositionRead(oldPos);
            }
        }