public InSingleProcessMemorySubscription(
            IInSingleProcessMemoryMessageBus messageBus, SubscriptionId subscriptionId, TopicId topicId,
            Type messageType, string queueName, SubscriptionMode subscriptionMode, bool acceptMessagesOlderThanSubscriptionTime,
            Action<object> messageHandler,
            Action<object, object> messageHandlerWithProperties,
            Action<object, Dictionary<string, string>> messageHandlerWithHeaders,
            Action<object, object, Dictionary<string, string>> messageHandlerWithPropertiesAndHeaders)
            : base(subscriptionId, topicId, messageType, queueName, subscriptionMode, acceptMessagesOlderThanSubscriptionTime, messageHandler, messageHandlerWithProperties, messageHandlerWithHeaders, messageHandlerWithPropertiesAndHeaders)
        {
            if (topicId == null) throw new ArgumentNullException("topicId");

            MessageBus = messageBus;
        }
 internal InSingleProcessMemoryAuthorizedConsumer(InSingleProcessMemorySubscription subscription, AuthorizedMessageOperation operation, IInSingleProcessMemoryMessageBus messageBus)
     : base(subscription, messageBus)
 {
     Operation = operation;
 }
 protected override InSingleProcessMemoryConsumer NewConsumer(IInSingleProcessMemoryMessageBus messageBus)
 {
     return new InSingleProcessMemoryAuthorizedConsumer(this, Operation, messageBus);
 }
 public InSingleProcessMemoryAuthorizedSubscription(IInSingleProcessMemoryMessageBus messageBus, AuthorizedMessageOperation operation, SubscriptionId subscriptionId, TopicId topicId, Type messageType, string queueName, SubscriptionMode subscriptionMode, bool acceptMessagesOlderThanSubscriptionTime, Action<object> messageHandler, Action<object, object> messageHandlerWithProperties, Action<object, Dictionary<string, string>> messageHandlerWithHeaders, Action<object, object, Dictionary<string, string>> messageHandlerWithPropertiesAndHeaders)
     : base(messageBus, subscriptionId, topicId, messageType, queueName, subscriptionMode, acceptMessagesOlderThanSubscriptionTime, messageHandler, messageHandlerWithProperties, messageHandlerWithHeaders, messageHandlerWithPropertiesAndHeaders)
 {
     Operation = operation;
 }
 protected virtual InSingleProcessMemoryConsumer NewConsumer(IInSingleProcessMemoryMessageBus messageBus)
 {
     return new InSingleProcessMemoryConsumer(this, messageBus);
 }
 internal InSingleProcessMemoryConsumer(InSingleProcessMemorySubscription subscription, IInSingleProcessMemoryMessageBus messageBus)
 {
     Subscription = subscription;
     MessageBus = messageBus;
     Model = MessageBus.NewChannel();
 }