コード例 #1
0
        public MessageBus(MessageBusCreateParameters parameters = null)
        {
            parameters = parameters ?? MessageBusCreateParameters.Default;
            Id         = parameters.Id ?? Guid.NewGuid().ToString();

            Logger = parameters.GetLogger() ?? new SilentLogger();

            WorkerPool              = new WorkerPool(Logger, parameters.NumberOfWorkers, parameters.MaximumQueuedMessages);
            Modules                 = new ModuleManager(Logger);
            EnvelopeFactory         = new EnvelopeFactory(Id, parameters.IdGenerator ?? new LocalIncrementIdGenerator());
            _subscriptionDispatcher = new SubscriptionDispatcher(Logger, parameters.AllowWildcards);
            _requestDispatcher      = new RequestDispatcher(Logger, parameters.AllowWildcards);
            _participantDispatcher  = new ParticipantDispatcher(Logger, parameters.AllowWildcards);
            _router                 = new TopicRouter();
        }
コード例 #2
0
 private static IMessageBus DefaultFactoryMethod(MessageBusCreateParameters p)
 {
     return(new MessageBus(p));
 }
コード例 #3
0
 public MessageBusBuilder()
 {
     _parameters = new MessageBusCreateParameters();
     _factory    = DefaultFactoryMethod;
 }