Beispiel #1
0
        // Deserialize constructor
        internal Block(BinaryReader reader,
                       IBlockSerializer <T> valueSerializer,
                       int valueBytesCount,
                       int maxValues)
        {
            Depth = ReadDepth(reader);

            int count = reader.ReadInt32();

            if (count < 0 || count > maxValues)
            {
                throw new IOException();
            }

            int[] hashes = new int[count];
            for (int i = 0; i < count; ++i)
            {
                hashes[i] = reader.ReadInt32();
            }

            Records = new List <Record <T> >(count);
            for (int i = 0; i < count; ++i)
            {
                var value = valueSerializer.Deserialize(reader.ReadBytes(valueBytesCount));
                Records.Add(new Record <T>(hashes[i], value));
            }
        }
Beispiel #2
0
        public IList <XPoint> Add(ISheet sheet, IEnumerable <ItemPoint> pointItems, XBlock parent, XBlock selected, bool select, double thickness)
        {
            var points = new List <XPoint>();

            foreach (var pointItem in pointItems)
            {
                var point = _blockSerializer.Deserialize(sheet, parent, pointItem, thickness);

                points.Add(point);

                if (select)
                {
                    Select(point);
                    selected.Points.Add(point);
                }
            }

            return(points);
        }