/// <summary> /// Read the message header structure and cache the meta data for finding the key fields for decoding messages. /// </summary> /// <param name="headerStructure"> for the meta data describing the message header. </param> public OtfHeaderDecoder(HeaderStructure headerStructure) { _size = headerStructure.Tokens[0].Size; foreach (Token token in headerStructure.Tokens) { switch (token.Name) { case HeaderStructure.BlockLength: _blockLengthOffset = token.Offset; _blockLengthType = token.Encoding.PrimitiveType; _blockLengthByteOrder = token.Encoding.ByteOrder; break; case HeaderStructure.TemplateId: _templateIdOffset = token.Offset; _templateIdType = token.Encoding.PrimitiveType; _templateIdByteOrder = token.Encoding.ByteOrder; break; case HeaderStructure.SchemaId: _schemaIdOffset = token.Offset; _schemaIdType = token.Encoding.PrimitiveType; _schemaIdByteOrder = token.Encoding.ByteOrder; break; case HeaderStructure.SchemaVersion: _schemaVersionOffset = token.Offset; _schemaVersionType = token.Encoding.PrimitiveType; _schemaVersionByteOrder = token.Encoding.ByteOrder; break; } } }
/// <summary> /// Create a new IR container taking a defensive copy of the headerStructure <seealso cref="Token"/>s passed. /// </summary> /// <param name="packageName"> that should be applied to generated code. </param> /// <param name="namespaceName"> that should be applied to generated code.</param> /// <param name="headerTokens"> representing the message headerStructure. </param> public IntermediateRepresentation(string packageName, string namespaceName, IList <Token> headerTokens, int version) { Verify.NotNull(packageName, "packageName"); Verify.NotNull(headerTokens, "headerTokens"); _packageName = packageName; _headerStructure = new HeaderStructure(new List <Token>(headerTokens)); _version = version; _namespaceName = namespaceName; }
/// <summary> /// Create a new IR container taking a defensive copy of the headerStructure <seealso cref="Token"/>s passed. /// </summary> /// <param name="packageName"> that should be applied to generated code. </param> /// <param name="namespaceName"> that should be applied to generated code.</param> /// <param name="headerTokens"> representing the message headerStructure. </param> public IntermediateRepresentation(string packageName, string namespaceName, IList<Token> headerTokens, int version) { Verify.NotNull(packageName, "packageName"); Verify.NotNull(headerTokens, "headerTokens"); _packageName = packageName; _headerStructure = new HeaderStructure(new List<Token>(headerTokens)); _version = version; _namespaceName = namespaceName; }