public MessageCacheFactory(
            ChangeStoreSelector changeStoreSelector, 
            ISystemTime systemTime,
            NullChangeStore nullChangeStore,
            ICheckpointStrategy checkPointStrategy)
        {
            Contract.Requires(changeStoreSelector != null);
            Contract.Requires(systemTime != null);
            Contract.Requires(nullChangeStore != null);

            this.changeStoreSelector = changeStoreSelector;
            this.systemTime = systemTime;
            this.nullChangeStore = nullChangeStore;
            this.checkPointStrategy = checkPointStrategy;
        }
 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 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;
        }