Beispiel #1
0
        public void Deserialize(byte[] data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("Data must be non-empty");
            }
            if ((data.Length % MultiStreamHeaderItem.Size) != 0)
            {
                throw new ArgumentException("Data must be aligned with GZipMultiStreamHeaderItem.Size");
            }

            int count = data.Length / MultiStreamHeaderItem.Size;

            for (int i = 0; i < count; i++)
            {
                MultiStreamHeaderItem item = new MultiStreamHeaderItem();
                byte[] buffer = new byte[MultiStreamHeaderItem.Size];

                // TODO: Get rid of copying
                Array.Copy(data, i * MultiStreamHeaderItem.Size, buffer, 0, MultiStreamHeaderItem.Size);

                item.Deserialize(buffer);

                Items.Add(item);
            }
        }
Beispiel #2
0
        public override bool Equals(object obj)
        {
            if (obj == null ||
                GetType() != obj.GetType())
            {
                return(false);
            }

            MultiStreamHeaderItem anotherItem = (MultiStreamHeaderItem)obj;

            return(Length == anotherItem.Length);
        }