Exemplo n.º 1
0
        public static Queue <TObj> ReadBlockQueue <TObj>(
            this GenericReader reader,
            Func <GenericReader, TObj> onDeserialize,
            Queue <TObj> queue = null)
        {
            var count = reader.ReadInt();

            queue = queue ?? new Queue <TObj>(count);

            for (var index = 0; index < count; index++)
            {
                ReadBlock(
                    reader,
                    r =>
                {
                    if (!r.ReadBool())
                    {
                        return;
                    }

                    var obj = onDeserialize(r);

                    if (obj != null)
                    {
                        queue.Enqueue(obj);
                    }
                });
            }

            queue.Free(false);

            return(queue);
        }