コード例 #1
0
        public int GetSaveLength()
        {
            int size = ContentSizeCompressed != 0 ? 56 : 48;

            if (Fragments != null)
            {
                size += DataFragment.GetSaveLength(Fragments);
            }

            return(size);
        }
コード例 #2
0
        public static byte[] SaveFragments(DataFragment[] fragments)
        {
            // Sum up the expected # of bytes needed. As compressed fragments have been compacted they have been removed - so add two bytes for each compressed fragment to compensate.
            int expectedLength = fragments.Sum(s => s.ThisObjectLength + (s.IsCompressed ? 2 : 0));

            int saveLength = DataFragment.GetSaveLength(fragments);

            Debug.Assert(expectedLength == saveLength);

            byte[] data = new byte[saveLength + 1];
            DataFragment.Save(data, 0, fragments);

            return(data);
        }