Exemple #1
0
 private void Send(EBrokerRequest request, string[] messageTypes)
 {
     using (EneterTrace.Entering())
     {
         BrokerMessage aBrokerMessage = new BrokerMessage(request, messageTypes);
         Send(aBrokerMessage);
     }
 }
Exemple #2
0
        public _T Deserialize <_T>(object serializedData)
        {
            using (EneterTrace.Entering())
            {
                if (serializedData is byte[] == false)
                {
                    throw new ArgumentException("Input parameter 'serializedData' is not byte[].");
                }

                if (typeof(_T) != typeof(BrokerMessage))
                {
                    throw new InvalidOperationException("Data can be deserialized only into" + typeof(BrokerMessage).Name);
                }

                BrokerMessage aResult;

                byte[] aData = (byte[])serializedData;

                using (MemoryStream aStream = new MemoryStream(aData))
                {
                    BinaryReader aReader = new BinaryReader(aStream);


                    // Read broker request.
                    int            aBrokerRequestNumber = aReader.ReadByte();
                    EBrokerRequest aBrokerRequest       = (EBrokerRequest)aBrokerRequestNumber;


                    // Read number of message types.
                    int aNumberOfMessageTypes = myEncoderDecoder.ReadInt32(aReader, myIsLittleEndian);

                    // Read message types.
                    string[] aMessageTypes = new string[aNumberOfMessageTypes];
                    for (int i = 0; i < aMessageTypes.Length; ++i)
                    {
                        string aMessageType = myEncoderDecoder.ReadPlainString(aReader, Encoding.UTF8, myIsLittleEndian);
                        aMessageTypes[i] = aMessageType;
                    }

                    if (aBrokerRequest == EBrokerRequest.Publish)
                    {
                        object aPublishedMessage = myEncoderDecoder.Read(aReader, myIsLittleEndian);
                        aResult = new BrokerMessage(aMessageTypes[0], aPublishedMessage);
                    }
                    else
                    {
                        aResult = new BrokerMessage(aBrokerRequest, aMessageTypes);
                    }

                    return((_T)(object)aResult);
                }
            }
        }
Exemple #3
0
 /// <summary>
 /// Constructs the message requesting the broker to subscribe or unsubscribe events.
 /// </summary>
 /// <param name="request">subscribing or unsubscribing</param>
 /// <param name="messageTypes">events to be subscribed or unsubscribed.</param>
 public BrokerMessage(EBrokerRequest request, string[] messageTypes)
 {
     Request      = request;
     MessageTypes = messageTypes;
     Message      = null;
 }