Alexandria.Games.Arcanum.ArchiveRecord.Open C# (CSharp) Метод

Open() публичный Метод

public Open ( ) : Stream
Результат Stream
        public override Stream Open()
        {
            lock (Archive) {
                BinaryReader reader = Archive.Reader;
                reader.BaseStream.Position = Offset;

                byte[] data = new byte[Size];

                switch (Mode) {
                    case ArchiveRecordMode.Deflate:
                        var inflater = new ICSharpCode.SharpZipLib.Zip.Compression.Inflater();
                        inflater.SetInput(reader.ReadBytes(SizeCompressed), 0, SizeCompressed);
                        if (inflater.Inflate(data, 0, Size) != Size)
                            throw new InvalidDataException();
                        break;

                    case ArchiveRecordMode.Uncompressed:
                        if (reader.Read(data, 0, Size) != Size)
                            throw new InvalidDataException();
                        break;

                    default:
                        throw new NotSupportedException();
                }

                return new MemoryStream(data, false);
            }
        }