Exemplo n.º 1
0
        private static MessageHandlerConfiguration[] GetMessageHandlers(AssociationRole associationRole)
        {
            MessageHandlerConfiguration[] _ret = null;
            switch (associationRole)
            {
            case AssociationRole.Consumer:
                _ret = new MessageReaderConfiguration[] { new MessageReaderConfiguration()
                                                          {
                                                              ConsumerAssociationConfigurations = GetConsumerAssociationConfiguration(),
                                                              Configuration = null,
                                                              Name          = "UDP",
                                                              TransportRole = associationRole
                                                          } };
                break;

            case AssociationRole.Producer:
                _ret = new MessageWriterConfiguration[] { new MessageWriterConfiguration()
                                                          {
                                                              ProducerAssociationConfigurations = GetProducerAssociationConfiguration(),
                                                              Configuration = null,
                                                              Name          = "UDP",
                                                              TransportRole = associationRole
                                                          } };
                break;
            }
            return(_ret);
        }
        internal static MessageHandlerConfiguration[] GetMessageHandlers(AssociationRole associationRole)
        {
            MessageHandlerConfiguration[] _ret = null;
            switch (associationRole)
            {
            case AssociationRole.Consumer:
                _ret = new MessageReaderConfiguration[] { new MessageReaderConfiguration()
                                                          {
                                                              ConsumerAssociationConfigurations = GetConsumerAssociationConfiguration(),
                                                              Configuration = new MessageChannelConfiguration()
                                                              {
                                                                  ChannelConfiguration = "4840,True,239.255.255.1,True"
                                                              },
                                                              Name          = "UDP",
                                                              TransportRole = associationRole
                                                          } };
                break;

            case AssociationRole.Producer:
                _ret = new MessageWriterConfiguration[] { new MessageWriterConfiguration()
                                                          {
                                                              ProducerAssociationConfigurations = GetProducerAssociationConfiguration(),
                                                              Configuration = new MessageChannelConfiguration()
                                                              {
                                                                  ChannelConfiguration = "4840,localhost"
                                                              },
                                                              Name          = "UDP",
                                                              TransportRole = associationRole
                                                          } };
                break;
            }
            return(_ret);
        }
 private void TestConfiguration(MessageReaderConfiguration _item)
 {
     foreach (ConsumerAssociationConfiguration _ax in _item.ConsumerAssociationConfigurations)
     {
         AssociationsDictionary.Add(_ax.AssociationName, _ax);
     }
     MessageTransportConfigurationDictionary.Add(_item.Name, _item);
     Assert.IsNull(_item.Configuration);
 }
Exemplo n.º 4
0
        private static void CompareMessageReaderConfiguration(MessageReaderConfiguration source, MessageReaderConfiguration mirror)
        {
            Assert.IsNotNull(source);
            Assert.IsNotNull(mirror);
            Assert.AreEqual <AssociationRole>(source.TransportRole, mirror.TransportRole);
            Assert.IsNotNull(mirror.ConsumerAssociationConfigurations);
            Dictionary <string, ConsumerAssociationConfiguration> _mirror2Dictionary = mirror.ConsumerAssociationConfigurations.ToDictionary <ConsumerAssociationConfiguration, string>(x => x.AssociationName);

            Assert.IsNotNull(source.ConsumerAssociationConfigurations);
            foreach (ConsumerAssociationConfiguration _item in source.ConsumerAssociationConfigurations)
            {
                Assert.IsTrue(_mirror2Dictionary.ContainsKey(_item.AssociationName));
                Compare(_item, _mirror2Dictionary[_item.AssociationName]);
            }
        }
Exemplo n.º 5
0
        /// <summary>
        /// Creates the message handlers.
        /// </summary>
        /// <param name="configuration">The configuration.</param>
        /// <param name="messageHandlerFactory">The message handler factory.</param>
        /// <param name="encodingFactory">The encoding factory that provides functionality to lookup a dictionary containing value converters..</param>
        /// <param name="addMessageHandler">The add message handler.</param>
        /// <returns>MessageHandlersCollection.</returns>
        /// <exception cref="System.ArgumentOutOfRangeException">Name;Duplicated transport name</exception>
        internal static MessageHandlersCollection CreateMessageHandlers
            (MessageHandlerConfiguration[] configuration, IMessageHandlerFactory messageHandlerFactory, IEncodingFactory encodingFactory, Action <IMessageHandler, AssociationConfiguration> addMessageHandler)
        {
            MessageHandlersCollection _collection = new MessageHandlersCollection();

            foreach (MessageHandlerConfiguration _configuration in configuration)
            {
                if (_collection.ContainsKey(_configuration.Name))
                {
                    throw new ArgumentOutOfRangeException("Name", "Duplicated transport name");
                }
                IMessageHandler _handler = null;
                switch (_configuration.TransportRole)
                {
                case AssociationRole.Consumer:
                    MessageReaderConfiguration _readerConfiguration = (MessageReaderConfiguration)_configuration;
                    _handler = messageHandlerFactory.GetIMessageReader(_configuration.Name, _configuration.Configuration, encodingFactory.UADecoder);
                    foreach (ConsumerAssociationConfiguration _consumerAssociation in _readerConfiguration.ConsumerAssociationConfigurations)
                    {
                        addMessageHandler(_handler, _consumerAssociation);
                    }
                    break;

                case AssociationRole.Producer:
                    MessageWriterConfiguration _writerConfiguration = (MessageWriterConfiguration)_configuration;
                    _handler = messageHandlerFactory.GetIMessageWriter(_configuration.Name, _configuration.Configuration, encodingFactory.UAEncoder);
                    foreach (ProducerAssociationConfiguration _producerAssociation in _writerConfiguration.ProducerAssociationConfigurations)
                    {
                        addMessageHandler(_handler, _producerAssociation);
                    }
                    break;

                default:
                    break;
                }
                _collection.Add(_configuration.Name, _handler);
            }
            return(_collection);
        }