Esempio n. 1
0
        /// <summary>
        /// Assembles the StreamMetadataBody object from byte array
        /// </summary>
        /// <param name="reader">BinaryReader to deserialize from</param>
        /// <returns>StreamMetadataBody object</returns>
        public StreamMetadataBody Read(BinaryReader reader)
        {
            var metadataKind          = (StreamMetadataKind)reader.ReadInt32();
            StreamMetadataBody result = null;

            switch (metadataKind)
            {
            case StreamMetadataKind.ReceiveSequenceNumber:
            case StreamMetadataKind.SendSequenceNumber:
            case StreamMetadataKind.DeleteSequenceNumber:
                result = StreamSequenceNumber.FromByteArray(reader);
                break;

            case StreamMetadataKind.OutboundStableParameters:
                result = OutboundStreamStableParameters.FromByteArray(reader);
                break;

            case StreamMetadataKind.InboundStableParameters:
                result = InboundStreamStableParameters.FromByteArray(reader);
                break;

            default:
                Diagnostics.Assert(false, "Unknown Stream MetadataKind in StreamMetadataBody.FromByteArray()");
                break;
            }

            return(result);
        }