public void Subscribe(SubscriptionSchema schema)
        {
            Logger.Info(
                "Subscribing channel {0} for {1}",
                schema.SubscriberAddress.Channel,
                schema.SubscriberAddress.Server.Address);

            subscribers.AddSubscriber(schema);
        }
        public void BuildChannel(EndpointAddress address, SubscriptionSchema schema)
        {
            Contract.Requires(address != null);
            Contract.Requires(address != EndpointAddress.Empty);
            Contract.Requires(schema != null);

            channel =  builder.BuildChannel(
                new SubscriberSendChannelSchema
                {
                    FromAddress = address,
                    SubscriberAddress = schema.SubscriberAddress,
                    IsDurable = schema.IsDurable,
                    RepeatStrategy = schema.RepeatStrategy
                });

            lock (locker) Monitor.Pulse(locker);
        }
        public static void SetSubscriptionRequest(this MessagePayload payload, SubscriptionSchema schema)
        {
            Contract.Requires(schema != null);

            payload.AddHeader(new SubscriptionRequestHeader(schema));
        }
 public SubscriptionRequestHeader(SubscriptionSchema schema) 
 {
     Contract.Requires(schema != null);
     this.Schema = schema;
 }