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
            }
        }
 public void Set(ArchiveReader archive, byte[] dataVector)
 {
     Dispose();
     _archive = archive;
     _archive.AddByteStream(dataVector, 0, dataVector.Length);
     _needRemove = true;
     _active = true;
 }
 public void Set(ArchiveReader archive, List<byte[]> dataVector)
 {
     this.Dispose();
     this._active = true;
     if (archive.ReadByte() != 0)
     {
         int num2 = archive.ReadNum();
         if ((num2 < 0) || (num2 >= dataVector.Count))
         {
             throw new InvalidOperationException();
         }
         Log.WriteLine("[switch to stream {0}]", new object[] { num2 });
         this._archive = archive;
         this._archive.AddByteStream(dataVector[num2], 0, dataVector[num2].Length);
         this._needRemove = true;
         this._active = true;
     }
     else
     {
         Log.WriteLine("[inline data]");
     }
 }