internal PointToPointReceiveChannelBuilder(
            MessageReceiver messageReceiver, 
            ISerialiser serialiser, 
            AcknowledgementSender acknowledgementSender, 
            MessageHandlerRouter messageHandlerRouter,
            MessageCacheFactory messageCacheFactory, 
            ISystemTime systemTime, 
            ITaskRepeater taskRepeater, 
            ServerAddressRegistry serverAddressRegistry, 
            AuthenticationSessionCache authenticationSessionCache, 
            AuthenticatedServerRegistry authenticatedServerRegistry)
        {
            Contract.Requires(messageReceiver != null);
            Contract.Requires(serialiser != null);
            Contract.Requires(acknowledgementSender != null);
            Contract.Requires(messageHandlerRouter != null);
            Contract.Requires(messageCacheFactory != null);
            Contract.Requires(systemTime != null);
            Contract.Requires(taskRepeater != null);
            Contract.Requires(serverAddressRegistry != null);
            Contract.Requires(authenticationSessionCache != null);
            Contract.Requires(authenticatedServerRegistry != null);

            this.messageReceiver = messageReceiver;
            this.serialiser = serialiser;
            this.acknowledgementSender = acknowledgementSender;
            this.messageHandlerRouter = messageHandlerRouter;
            this.messageCacheFactory = messageCacheFactory;
            this.systemTime = systemTime;
            this.taskRepeater = taskRepeater;
            this.serverAddressRegistry = serverAddressRegistry;
            this.authenticationSessionCache = authenticationSessionCache;
            this.authenticatedServerRegistry = authenticatedServerRegistry;
        }
        public RequestReceiverBuilder(MessageReceiver messageReceiver, MessageHandlerRouter messageHandlerRouter, ISerialiser serialiser)
        {
            Contract.Requires(messageReceiver != null);
            Contract.Requires(messageHandlerRouter != null);
            Contract.Requires(serialiser != null);

            this.messageReceiver = messageReceiver;
            this.messageHandlerRouter = messageHandlerRouter;
            this.serialiser = serialiser;
        }
        public AcknowledgementRecieveChannelBuilder(
            MessageReceiver messageReceiver, 
            MessageAcknowledgementHandler handler, 
            ISerialiser serialiser)
        {
            Contract.Requires(messageReceiver != null);
            Contract.Requires(handler != null);
            Contract.Requires(serialiser != null);

            this.messageReceiver = messageReceiver;
            this.handler = handler;
            this.serialiser = serialiser;
        }
 public RequestReceiveDistributionChannelBuilder(
     MessageReceiver messageReceiver, 
     RequestRecieveChannelBuilder builder,
     ChangeStoreSelector changeStoreSelector,
     ICheckpointStrategy checkPointStrategy)
 {
     Contract.Requires(messageReceiver != null);
     Contract.Requires(builder != null);
     Contract.Requires(changeStoreSelector != null);
     
     this.messageReceiver = messageReceiver;
     this.builder = builder;
     this.changeStoreSelector = changeStoreSelector;
     this.checkPointStrategy = checkPointStrategy;
 }
        public ReplyReceiverBuilder(
            MessageReceiver messageReceiver,
            ISerialiser serialiser,
            IMainThreadMarshaller mainThreadMarshaller,
            MessageHandlerRouter router)
        {
            Contract.Requires(messageReceiver != null);
            Contract.Requires(serialiser != null);
            Contract.Requires(mainThreadMarshaller != null);
            Contract.Requires(router != null);

            this.messageReceiver = messageReceiver;
            this.serialiser = serialiser;
            this.mainThreadMarshaller = mainThreadMarshaller;
            this.router = router;
        }
        public ReplySendDistributionChannelBuilder(
            MessageReceiver messageReceiver,
            ReplySendChannelBuilder builder, 
            ReplyAddressLookup replyAddressLookup,
            ChangeStoreSelector changeStoreSelector,
            ICheckpointStrategy checkPointStrategy)
        {
            Contract.Requires(messageReceiver != null);
            Contract.Requires(builder != null);
            Contract.Requires(replyAddressLookup != null);
            Contract.Requires(changeStoreSelector != null);
            Contract.Requires(checkPointStrategy != null);

            this.messageReceiver = messageReceiver;
            this.builder = builder;
            this.replyAddressLookup = replyAddressLookup;
            this.changeStoreSelector = changeStoreSelector;
            this.checkPointStrategy = checkPointStrategy;
        }
        internal ReplyReceiveChannelBuilder(
            ISerialiser serialiser,
            MessageHandlerRouter messageHandlerRouter,
            MessageReceiver messageReceiver,
            AcknowledgementSender acknowledgementSender,
            MessageCacheFactory messageCacheFactory,
            ISystemTime systemTime,
            ITaskRepeater taskRepeater,
            ServerAddressRegistry serverAddressRegistry,
            IMainThreadMarshaller mainThreadMarshaller,
            AuthenticationSessionCache authenticationSessionCache,
            AuthenticatedServerRegistry authenticatedServerRegistry,
            CorrelationLookup correlationLookup)
        {
            Contract.Requires(serialiser != null);
            Contract.Requires(messageHandlerRouter != null);
            Contract.Requires(messageReceiver != null);
            Contract.Requires(acknowledgementSender != null);
            Contract.Requires(messageCacheFactory != null);
            Contract.Requires(systemTime != null);
            Contract.Requires(taskRepeater != null);
            Contract.Requires(serverAddressRegistry != null);
            Contract.Requires(mainThreadMarshaller != null);
            Contract.Requires(authenticationSessionCache != null);
            Contract.Requires(authenticatedServerRegistry != null);
            Contract.Requires(correlationLookup != null);

            this.serialiser = serialiser;
            this.messageHandlerRouter = messageHandlerRouter;
            this.messageReceiver = messageReceiver;
            this.acknowledgementSender = acknowledgementSender;
            this.messageCacheFactory = messageCacheFactory;
            this.systemTime = systemTime;
            this.taskRepeater = taskRepeater;
            this.serverAddressRegistry = serverAddressRegistry;
            this.mainThreadMarshaller = mainThreadMarshaller;
            this.authenticationSessionCache = authenticationSessionCache;
            this.authenticatedServerRegistry = authenticatedServerRegistry;
            this.correlationLookup = correlationLookup;
        }
 SubscriptionRequestReceiveChannelBuilder(
     MessageReceiver messageReceiver, 
     AcknowledgementSender acknowledgementSender, 
     IPublisherRegistry publisherRegistry, 
     ServerAddressRegistry serverAddressRegistry, 
     AuthenticationSessionCache authenticationSessionCache, 
     AuthenticatedServerRegistry authenticatedServerRegistry)
 {
     Contract.Requires(messageReceiver != null);
     Contract.Requires(acknowledgementSender != null);
     Contract.Requires(publisherRegistry != null);
     Contract.Requires(serverAddressRegistry != null);
     Contract.Requires(authenticationSessionCache != null);
     Contract.Requires(authenticatedServerRegistry != null);
     
     this.messageReceiver = messageReceiver;
     this.acknowledgementSender = acknowledgementSender;
     this.publisherRegistry = publisherRegistry;
     this.serverAddressRegistry = serverAddressRegistry;
     this.authenticationSessionCache = authenticationSessionCache;
     this.authenticatedServerRegistry = authenticatedServerRegistry;
 }
        public DirectChannelMessageReceiverHandler(MessageReceiver messageReceiver)
        {
            Contract.Requires(messageReceiver != null);

            this.messageReceiver = messageReceiver;
        }