Example #1
0
        public static MessengerInfo DecodeMessengerInitMsg(IList <Byte[]> message)
        {
            var msgrInfo = new MessengerInfo
            {
                Type       = (MessengerType)message[NodeInfoIndex][NodeTypeIndex],
                Device     = (DeviceType)message[NodeInfoIndex][DeviceTypeIndex],
                Protocol   = (TransportProtocol)message[NodeInfoIndex][TransportProtocolIndex],
                Name       = Encoding.ASCII.GetString(message[NodeNameIndex]),
                DeviceName = Encoding.ASCII.GetString(message[DeviceNameIndex]),
                Id         = message[MessengerIdIndex][0]
            };

            if (msgrInfo.Type == MessengerType.Raw || msgrInfo.Type == MessengerType.None)
            {
                return(msgrInfo);
            }

            Int32 sectionsNumber = (Int32)msgrInfo.Type;
            var   parts          = new List <MessagePartDescription> [sectionsNumber];

            Byte[] name;
            MessagePartDescription msgPart;
            Int32 j = TypesDescriptionIndex;

            for (Int32 i = 0; i < sectionsNumber; i++)
            {
                parts[i] = new List <MessagePartDescription>();

                while (j < message.Count && (name = message[j]).Length != 0)
                {
                    msgPart = new MessagePartDescription
                    {
                        Name = Encoding.ASCII.GetString(name),
                        Type = (MessageValueType)message[j + 1][0]
                    };

                    j += 2;
                    parts[i].Add(msgPart);
                }
                j++;
            }
            msgrInfo.MessageDescriptions = parts;
            return(msgrInfo);
        }
 public ServiceMessenger(MessengerInfo info) : base(info)
 {
     m_goalBuffer = new BufferBlock <Message>();
     m_creator    = InstanceFactoryCreator.Instance.CreateFactory <G>();
 }
Example #3
0
 public MockMessenger(MessengerInfo info) : base(info)
 {
 }
Example #4
0
 public RawMessenger(MessengerInfo info) : base(info) =>
 public ActionMessenger(MessengerInfo info) : base(info)
 {
     m_feedbackBuffer = new BufferBlock <Message>();
     m_creator        = InstanceFactoryCreator.Instance.CreateFactory <F>();
 }
 public TopicMessenger(MessengerInfo info) : base(info)
 {
     m_messageBuffer = new BufferBlock <Message>();
     m_creator       = InstanceFactoryCreator.Instance.CreateFactory <M>();
 }