示例#1
0
        public void Set(ArchiveReader archive, List<byte[]> dataVector)
        {
            Dispose();
            _active = true;

            byte external = archive.ReadByte();
            if (external != 0)
            {
                int dataIndex = archive.ReadNum();
                if (dataIndex < 0 || dataIndex >= dataVector.Count)
                    throw new InvalidOperationException();

            #if DEBUG
                Log.WriteLine("[switch to stream {0}]", dataIndex);
            #endif
                _archive = archive;
                _archive.AddByteStream(dataVector[dataIndex], 0, dataVector[dataIndex].Length);
                _needRemove = true;
                _active = true;
            }
            else
            {
            #if DEBUG
                Log.WriteLine("[inline data]");
            #endif
            }
        }
示例#2
0
 public void Set(ArchiveReader archive, byte[] dataVector)
 {
     Dispose();
     _archive = archive;
     _archive.AddByteStream(dataVector, 0, dataVector.Length);
     _needRemove = true;
     _active = true;
 }