Exemplo n.º 1
0
        public static AtomicHeader Deserialize(Stream stream)
        {
            AtomicHeader header = new AtomicHeader();

            stream.Seek(0, SeekOrigin.Begin);

            byte[] buffer = new byte[SIZE];
            if (stream.Read(buffer, 0, SIZE) != SIZE)
            {
                throw new Exception(String.Format("Invalid {0} header.", TITLE));
            }

            using (MemoryStream ms = new MemoryStream(buffer))
            {
                BinaryReader reader = new BinaryReader(ms);

                string title = reader.ReadString();
                if (title != TITLE)
                {
                    throw new Exception(String.Format("Invalid {0} header.", TITLE));
                }

                header.Version        = reader.ReadInt32();
                header.UseCompression = reader.ReadBoolean();

                //last flush location
                header.SystemData = Ptr.Deserialize(reader);

                //tag
                int tagLength = reader.ReadInt32();
                header.Tag = tagLength >= 0 ? reader.ReadBytes(tagLength) : null;
            }

            return(header);
        }
Exemplo n.º 2
0
        public static AtomicHeader Deserialize(Stream system)
        {
            AtomicHeader header = new AtomicHeader();

            system.Seek(POSITION, SeekOrigin.Begin);
            byte[] buffer = new byte[SIZE];

            if (system.Read(buffer, 0, buffer.Length) != SIZE)
            {
                return(header);
            }

            using (MemoryStream ms = new MemoryStream(buffer))
            {
                BinaryReader br = new BinaryReader(ms);

                //last flush location
                header.LastFlush = Ptr.Deserialize(br);

                //tag
                int tagLength = br.ReadInt32();
                header.Tag = tagLength >= 0 ? br.ReadBytes(tagLength) : null;
            }

            return(header);
        }
Exemplo n.º 3
0
        public static Pointer Deserialize(BinaryReader reader)
        {
            long version = reader.ReadInt64();
            Ptr  ptr     = Ptr.Deserialize(reader);

            return(new Pointer(version, ptr));
        }
Exemplo n.º 4
0
        public void Deserealize(BinaryReader reader)
        {
            Strategy         = (AllocationStrategy)reader.ReadByte();
            activeChunkIndex = reader.ReadInt32();
            int count = reader.ReadInt32();

            free.Clear();
            FreeBytes = 0;

            for (int i = 0; i < count; i++)
            {
                var ptr = Ptr.Deserialize(reader);
                free.Add(ptr);
                FreeBytes += ptr.Size;
            }
        }
Exemplo n.º 5
0
        public void Deserealize(BinaryReader reader)
        {
            int count = reader.ReadInt32();

            free.Clear();
            FreeBytes = 0;

            for (int i = 0; i < count; i++)
            {
                var ptr = Ptr.Deserialize(reader);
                free.Add(ptr);
                FreeBytes += ptr.Size;
            }

            activeChunkIndex = -1;
        }