/// <inheritdoc />
        protected sealed override TEnumerable DeserializeValues(int countOfValues, IBufferedArray buffer)
        {
            TEnumerable result = this.Create(countOfValues);

            this.DeserializeValuesInline(countOfValues, buffer, result);
            return(result);
        }
    public static ulong NextULong(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.ULong);
        return(converter.ToULong(buffer.Buffer, 0));
    }
    public static decimal NextDecimal(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Decimal);
        return(converter.ToDecimal(buffer.Buffer, 0));
    }
示例#4
0
        /// <inheritdoc />
        public void DeserializeInline(
            IBufferedArray buffer, VoxelGridChunkResources result)
        {
            IInlineDeserializerContracts.DeserializeInline(buffer, result);

            this.serializer.DeserializeInline(buffer, result.Voxels);
        }
		/// <inheritdoc />
		public void DeserializeInline(
			IBufferedArray buffer, SkyIslandMapChunkResources result)
		{
			IInlineDeserializerContracts.DeserializeInline(buffer, result);

			this.serializer.DeserializeInline(buffer, result.Maps);
		}
    public static int NextInt(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Int);
        return(converter.ToInt(buffer.Buffer, 0));
    }
    public static sbyte NextSByte(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.SByte);
        return(converter.ToSByte(buffer.Buffer, 0));
    }
    public static char NextChar(this IBufferedArray buffer, IByteConverter converter)
    {
        SharedContracts(buffer, converter);

        buffer.BufferNextExceptionChecking(ByteLength.Char);
        return(converter.ToChar(buffer.Buffer, 0));
    }
 /// <inheritdoc />
 protected override void DeserializeValuesInline(
     int countOfValues, IBufferedArray buffer, ICollection <T> result)
 {
     for (int count = 0; count < countOfValues; count++)
     {
         result.Add(this.ValueSerializer.Deserialize(buffer));
     }
 }
示例#10
0
 /// <inheritdoc />
 protected override void DeserializeValues(
     Index3D lowerBounds, Index3D dimensions, IBufferedArray buffer, TIndexable result)
 {
     foreach (var resultIndex in Index.Range(lowerBounds, dimensions))
     {
         result[resultIndex] = this.ValueSerializer.Deserialize(buffer);
     }
 }
示例#11
0
        /// <inheritdoc />
        public TValue Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);

            TKey key = this.keySerializer.Deserialize(buffer);

            return(this.serializers[key].Deserialize(buffer));
        }
示例#12
0
        /// <inheritdoc />
        public TValue Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);

            T part = this.serialzier.Deserialize(buffer);

            return(this.ComposeValue(part));
        }
        /// <inheritdoc />
        protected sealed override TIndexable DeserializeValues(
            TIndex lowerBounds, TIndex dimensions, IBufferedArray buffer)
        {
            TIndexable result = this.Create(dimensions);

            this.DeserializeValues(lowerBounds, dimensions, buffer, result);
            return(result);
        }
        /// <inheritdoc />
        public TIndexable Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);

            TIndex lowerBounds = this.LowerBoundsSerializer.Deserialize(buffer);
            TIndex dimensions  = this.DimensionsSerializer.Deserialize(buffer);

            return(this.DeserializeValues(lowerBounds, dimensions, buffer));
        }
    public static bool TryBufferNext(this IBufferedArray buffer, int count)
    {
        Contracts.Requires.That(buffer != null);
        Contracts.Requires.That(count >= 0);

        int countBuffered = buffer.BufferNext(count);

        return(countBuffered == count);
    }
        /// <inheritdoc />
        public TValue Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);

            T1 part1 = this.serialzierT1.Deserialize(buffer);
            T2 part2 = this.serialzierT2.Deserialize(buffer);

            return(this.ComposeValue(part1, part2));
        }
        /// <inheritdoc />
        public void DeserializeInline(IBufferedArray buffer, TIndexable result)
        {
            IInlineDeserializerContracts.DeserializeInline(buffer, result);

            TIndex lowerBounds = this.LowerBoundsSerializer.Deserialize(buffer);
            TIndex dimensions  = this.DimensionsSerializer.Deserialize(buffer);

            this.DeserializeValues(lowerBounds, dimensions, buffer, result);
        }
        /// <inheritdoc />
        public int Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);
            Contracts.Requires.That(buffer.TotalRemainingLength.HasValue);
            Contracts.Requires.That(buffer.TotalRemainingLength.Value.IsDivisibleBy(
                                        this.enumerableValue.SerializedLength));

            return(buffer.TotalRemainingLength.Value / this.enumerableValue.SerializedLength);
        }
        /// <inheritdoc />
        protected override string DeserializeValues(int countOfValues, IBufferedArray buffer)
        {
            char[] chars = new char[countOfValues];
            for (int count = 0; count < countOfValues; count++)
            {
                chars[count] = this.ValueSerializer.Deserialize(buffer);
            }

            return(new string(chars));
        }
    private static void BufferNextExceptionChecking(this IBufferedArray buffer, int count)
    {
        Contracts.Requires.That(buffer != null);
        Contracts.Requires.That(count >= 0);

        if (!buffer.TryBufferNext(count))
        {
            throw new EndOfStreamException("End of buffered source reached.");
        }
    }
示例#21
0
        /// <inheritdoc />
        public TValue Deserialize(IBufferedArray buffer)
        {
            IDeserializerContracts.Deserialize(buffer);

            T1 part1 = this.serialzierT1.Deserialize(buffer);
            T2 part2 = this.serialzierT2.Deserialize(buffer);
            T3 part3 = this.serialzierT3.Deserialize(buffer);
            T4 part4 = this.serialzierT4.Deserialize(buffer);
            T5 part5 = this.serialzierT5.Deserialize(buffer);

            return(this.ComposeValue(part1, part2, part3, part4, part5));
        }
        public static T[] DeserializeValues <T>(
            IDeserializer <T> deserializer, int count, IBufferedArray buffer)
        {
            Contracts.Requires.That(deserializer != null);
            Contracts.Requires.That(count >= 0);
            Contracts.Requires.That(buffer != null);

            var result = new T[count];

            DeserializeValuesInline(deserializer, count, buffer, result);
            return(result);
        }
        public static void DeserializeValuesInline <T>(
            IDeserializer <T> deserializer, int count, IBufferedArray buffer, T[] result)
        {
            Contracts.Requires.That(deserializer != null);
            Contracts.Requires.That(count >= 0);
            Contracts.Requires.That(buffer != null);
            Contracts.Requires.That(result != null);

            for (int currentCount = 0; currentCount < count; currentCount++)
            {
                result[currentCount] = deserializer.Deserialize(buffer);
            }
        }
    public static bool TryNextDecimal(this IBufferedArray buffer, IByteConverter converter, out decimal value)
    {
        SharedContracts(buffer, converter);

        if (buffer.TryBufferNext(ByteLength.Decimal))
        {
            value = converter.ToDecimal(buffer.Buffer, 0);
            return(true);
        }
        else
        {
            value = default(decimal);
            return(false);
        }
    }
    public static bool TryNextFloat(this IBufferedArray buffer, IByteConverter converter, out float value)
    {
        SharedContracts(buffer, converter);

        if (buffer.TryBufferNext(ByteLength.Float))
        {
            value = converter.ToFloat(buffer.Buffer, 0);
            return(true);
        }
        else
        {
            value = default(float);
            return(false);
        }
    }
    public static bool TryNextChar(this IBufferedArray buffer, IByteConverter converter, out char value)
    {
        SharedContracts(buffer, converter);

        if (buffer.TryBufferNext(ByteLength.Char))
        {
            value = converter.ToChar(buffer.Buffer, 0);
            return(true);
        }
        else
        {
            value = default(char);
            return(false);
        }
    }
    public static bool TryNextSByte(this IBufferedArray buffer, IByteConverter converter, out sbyte value)
    {
        SharedContracts(buffer, converter);

        if (buffer.TryBufferNext(ByteLength.SByte))
        {
            value = converter.ToSByte(buffer.Buffer, 0);
            return(true);
        }
        else
        {
            value = default(sbyte);
            return(false);
        }
    }
    public static bool TryNextULong(this IBufferedArray buffer, IByteConverter converter, out ulong value)
    {
        SharedContracts(buffer, converter);

        if (buffer.TryBufferNext(ByteLength.ULong))
        {
            value = converter.ToULong(buffer.Buffer, 0);
            return(true);
        }
        else
        {
            value = default(ulong);
            return(false);
        }
    }
 private static void SharedContracts(IBufferedArray buffer, IByteConverter converter)
 {
     Contracts.Requires.That(buffer != null);
     Contracts.Requires.That(converter != null);
 }
 /// <inheritdoc />
 protected override void DeserializeValuesInline(int countOfValues, IBufferedArray buffer, T[] result) =>
 DeserializeArray.DeserializeValuesInline(this.ValueSerializer, countOfValues, buffer, result);