Example #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderWriter"/> class.
 /// </summary>
 /// <param name="writer">The writer.</param>
 /// <param name="headerLength">Length of the packet.</param>
 internal HeaderWriter(IBinaryHeaderEncoder writer, ushort headerLength)
 {
     m_Length        = headerLength;
     m_Writer        = writer;
     m_BeginPosition = CurrentPosition();
     writer.Seek(m_Length, SeekOrigin.Current);
 }
Example #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="HeaderWriter"/> class.
 /// </summary>
 /// <param name="writer">The writer.</param>
 /// <param name="headerLength">Length of the packet.</param>
 internal HeaderWriter(IBinaryHeaderEncoder writer, ushort headerLength)
 {
     m_Length = headerLength;
       m_Writer = writer;
       m_BeginPosition = CurrentPosition();
       writer.Seek(m_Length, SeekOrigin.Current);
 }
Example #3
0
 public ProducerMessageHeader(IBinaryHeaderEncoder writer, FieldEncodingEnum encoding, MessageLengthFieldTypeEnum lengthFieldType, MessageTypeEnum messageType, ConfigurationVersionDataType configurationVersion)
 {
     m_MessageType         = messageType;
     m_Encoding            = encoding;
     m_lengthFieldType     = lengthFieldType;
     m_HeaderWriter        = new HeaderWriter(writer, PackageHeaderLength());
     MessageSequenceNumber = 0;
     ConfigurationVersion  = configurationVersion;
 }
Example #4
0
            public ProducerHeader(IBinaryHeaderEncoder writer, Guid producerId, IList <ushort> dataSetWriterIds) : base()
            {
                if (writer == null)
                {
                    throw new ArgumentNullException(nameof(writer));
                }
                PublisherId         = producerId;
                NetworkMessageFlags = Convert.ToByte(PacketFlagsDefinitions.NetworkMessageType.RegularMessages);
                ProtocolVersion     = CommonDefinitions.ProtocolVersion;
                SecurityTokenId     = 0;
                NonceLength         = 0;
                DataSetWriterIds    = new ReadOnlyCollection <ushort>(dataSetWriterIds);
                MessageCount        = Convert.ToByte(DataSetWriterIds.Count);
                ushort _packetLength = Convert.ToUInt16(m_PacketHeaderLength + dataSetWriterIds.Count * 2);

                m_HeaderWriter = new HeaderWriter(writer, _packetLength);
            }
Example #5
0
            private void WriteHeader(IBinaryHeaderEncoder writer, ushort messageLength)
            {
                writer.Write((byte)MessageType);
                writer.Write(EncodingFlags);
                switch (m_lengthFieldType)
                {
                case MessageLengthFieldTypeEnum.OneByte:
                    writer.Write(Convert.ToByte(messageLength));
                    break;

                case MessageLengthFieldTypeEnum.TwoBytes:
                    writer.Write(Convert.ToUInt16(messageLength));
                    break;

                case MessageLengthFieldTypeEnum.FourBytes:
                    writer.Write(Convert.ToUInt32(messageLength));
                    break;
                }
                writer.Write(MessageSequenceNumber);
                writer.Write(ConfigurationVersion.MajorVersion);
                writer.Write(ConfigurationVersion.MinorVersion);
                switch (MessageType)
                {
                case MessageTypeEnum.DataKeyFrame:
                case MessageTypeEnum.DataDeltaFrame:
                case MessageTypeEnum.Event:
                    writer.Write(TimeStamp);
                    writer.Write(FieldCount);
                    break;

                case MessageTypeEnum.KeepAlive:
                    break;

                case MessageTypeEnum.DataSetMetadata:
                    break;

                default:
                    break;
                }
            }
Example #6
0
 //methods
 private void WriteHeader(IBinaryHeaderEncoder m_Writer, ushort dataLength)
 {
     Debug.Assert(DataSetWriterIds != null);
     Debug.Assert(DataSetWriterIds.Count == MessageCount);
     m_Writer.Write(ProtocolVersion);
     m_Writer.Write(NetworkMessageFlags);
     m_Writer.Write(PublisherId);
     m_Writer.Write(SecurityTokenId);
     m_Writer.Write(NonceLength);
     for (int i = 0; i < NonceLength; i++)
     {
         m_Writer.Write(Nonce[i]);
     }
     m_Writer.Write(MessageCount);
     if (MessageCount == 0)
     {
         return;
     }
     for (int i = 0; i < DataSetWriterIds.Count; i++)
     {
         m_Writer.Write(DataSetWriterIds[i]);
     }
 }
Example #7
0
 /// <summary>
 /// Gets the producer packet header.
 /// </summary>
 /// <param name="encoder">The writer.</param>
 /// <param name="producerId">The producer identifier.</param>
 /// <param name="dataSetWriterIds">The data set writer ids list. The size of the list must be equal to the <see cref="PacketHeader.MessageCount"/>.</param>
 /// <returns>An instance of the <see cref="PacketHeader"/>.</returns>
 public static PacketHeader GetProducerPacketHeader(IBinaryHeaderEncoder encoder, Guid producerId, IList <ushort> dataSetWriterIds)
 {
     return(new ProducerHeader(encoder, producerId, dataSetWriterIds));
 }
Example #8
0
 /// <summary>
 /// Gets the producer message header.
 /// </summary>
 /// <param name="writer">The writer <see cref="IBinaryHeaderEncoder" /> to populate the payload with the header information.</param>
 /// <param name="encoding">The encoding.</param>
 /// <param name="lengthFieldType">Type of the length field in the the message header.</param>
 /// <param name="messageType">Type of the message.</param>
 /// <param name="configurationVersion">The configuration version.</param>
 /// <returns>MessageHeader.</returns>
 internal static MessageHeader GetProducerMessageHeader(IBinaryHeaderEncoder writer, FieldEncodingEnum encoding, MessageLengthFieldTypeEnum lengthFieldType, MessageTypeEnum messageType, ConfigurationVersionDataType configurationVersion)
 {
     return(new ProducerMessageHeader(writer, encoding, lengthFieldType, messageType, configurationVersion));
 }
Example #9
0
 private void WriteHeader(IBinaryHeaderEncoder writer, ushort messageLength)
 {
     writer.Write((byte)MessageType);
     writer.Write(EncodingFlags);
     switch (m_lengthFieldType)
     {
       case MessageLengthFieldTypeEnum.OneByte:
     writer.Write(Convert.ToByte(messageLength));
     break;
       case MessageLengthFieldTypeEnum.TwoBytes:
     writer.Write(Convert.ToUInt16(messageLength));
     break;
       case MessageLengthFieldTypeEnum.FourBytes:
     writer.Write(Convert.ToUInt32(messageLength));
     break;
     }
     writer.Write(MessageSequenceNumber);
     writer.Write(ConfigurationVersion.MajorVersion);
     writer.Write(ConfigurationVersion.MinorVersion);
     switch (MessageType)
     {
       case MessageTypeEnum.DataKeyFrame:
       case MessageTypeEnum.DataDeltaFrame:
       case MessageTypeEnum.Event:
     writer.Write(TimeStamp);
     writer.Write(FieldCount);
     break;
       case MessageTypeEnum.KeepAlive:
     break;
       case MessageTypeEnum.DataSetMetadata:
     break;
       default:
     break;
     }
 }
Example #10
0
 public ProducerMessageHeader(IBinaryHeaderEncoder writer, FieldEncodingEnum encoding, MessageLengthFieldTypeEnum lengthFieldType, MessageTypeEnum messageType, ConfigurationVersionDataType configurationVersion)
 {
     m_MessageType = messageType;
     m_Encoding = encoding;
     m_lengthFieldType = lengthFieldType;
     m_HeaderWriter = new HeaderWriter(writer, PackageHeaderLength());
     MessageSequenceNumber = 0;
     ConfigurationVersion = configurationVersion;
 }
Example #11
0
 /// <summary>
 /// Gets the producer message header.
 /// </summary>
 /// <param name="writer">The writer <see cref="IBinaryHeaderEncoder" /> to populate the payload with the header information.</param>
 /// <param name="encoding">The encoding.</param>
 /// <param name="lengthFieldType">Type of the length field in the the message header.</param>
 /// <param name="messageType">Type of the message.</param>
 /// <param name="configurationVersion">The configuration version.</param>
 /// <returns>MessageHeader.</returns>
 internal static MessageHeader GetProducerMessageHeader(IBinaryHeaderEncoder writer, FieldEncodingEnum encoding, MessageLengthFieldTypeEnum lengthFieldType, MessageTypeEnum messageType, ConfigurationVersionDataType configurationVersion)
 {
     return new ProducerMessageHeader(writer, encoding, lengthFieldType, messageType, configurationVersion);
 }
Example #12
0
 //methods
 private void WriteHeader(IBinaryHeaderEncoder m_Writer, ushort dataLength)
 {
     Debug.Assert(DataSetWriterIds != null);
     Debug.Assert(DataSetWriterIds.Count == MessageCount);
     m_Writer.Write(ProtocolVersion);
     m_Writer.Write(NetworkMessageFlags);
     m_Writer.Write(PublisherId);
     m_Writer.Write(SecurityTokenId);
     m_Writer.Write(NonceLength);
     for (int i = 0; i < NonceLength; i++)
       m_Writer.Write(Nonce[i]);
     m_Writer.Write(MessageCount);
     if (MessageCount == 0)
       return;
     for (int i = 0; i < DataSetWriterIds.Count; i++)
       m_Writer.Write(DataSetWriterIds[i]);
 }
Example #13
0
 public ProducerHeader(IBinaryHeaderEncoder writer, Guid producerId, IList<UInt16> dataSetWriterIds)
     : base()
 {
     if (writer == null)
       throw new ArgumentNullException(nameof(writer));
     PublisherId = producerId;
     NetworkMessageFlags = Convert.ToByte(PacketFlagsDefinitions.NetworkMessageType.RegularMessages);
     ProtocolVersion = CommonDefinitions.ProtocolVersion;
     SecurityTokenId = 0;
     NonceLength = 0;
     DataSetWriterIds = new ReadOnlyCollection<UInt16>(dataSetWriterIds);
     MessageCount = Convert.ToByte(DataSetWriterIds.Count);
     ushort _packetLength = Convert.ToUInt16(m_PacketHeaderLength + dataSetWriterIds.Count * 2);
     m_HeaderWriter = new HeaderWriter(writer, _packetLength);
 }
Example #14
0
 /// <summary>
 /// Gets the producer packet header.
 /// </summary>
 /// <param name="encoder">The writer.</param>
 /// <param name="producerId">The producer identifier.</param>
 /// <param name="dataSetWriterIds">The data set writer ids list. The size of the list must be equal to the <see cref="PacketHeader.MessageCount"/>.</param>
 /// <returns>An instance of the <see cref="PacketHeader"/>.</returns>
 public static PacketHeader GetProducerPacketHeader(IBinaryHeaderEncoder encoder, Guid producerId, IList<UInt16> dataSetWriterIds)
 {
     return new ProducerHeader(encoder, producerId, dataSetWriterIds);
 }