protected override void InitializeFrom(System.ServiceModel.Channels.BindingElement bindingElement)
        {
            base.InitializeFrom(bindingElement);

            if (bindingElement == null)
            {
                throw new ArgumentNullException("binding");
            }

            RabbitMQTransportBindingElement rabbind = bindingElement as RabbitMQTransportBindingElement;

            if (rabbind == null)
            {
                throw new ArgumentException(
                          string.Format("Invalid type for binding. Expected {0}, Passed: {1}",
                                        typeof(RabbitMQBinding).AssemblyQualifiedName,
                                        bindingElement.GetType().AssemblyQualifiedName));
            }

            this.HostName    = rabbind.HostName;
            this.Port        = rabbind.Port;
            this.Password    = rabbind.ConnectionFactory.Password;
            this.Username    = rabbind.ConnectionFactory.UserName;
            this.VirtualHost = rabbind.ConnectionFactory.VirtualHost;
        }
        public override void ApplyConfiguration(BindingElement bindingElement)
        {
            base.ApplyConfiguration(bindingElement);
            if (bindingElement == null)
            {
                throw new ArgumentNullException("binding");
            }

            RabbitMQTransportBindingElement rabbind = bindingElement as RabbitMQTransportBindingElement;

            if (rabbind == null)
            {
                throw new ArgumentException(
                          string.Format("Invalid type for binding. Expected {0}, Passed: {1}",
                                        typeof(RabbitMQBinding).AssemblyQualifiedName,
                                        bindingElement.GetType().AssemblyQualifiedName));
            }

            rabbind.HostName                      = this.HostName;
            rabbind.Port                          = this.Port;
            rabbind.BrokerProtocol                = this.Protocol;
            rabbind.ConnectionFactory.Password    = this.Password;
            rabbind.ConnectionFactory.UserName    = this.Username;
            rabbind.ConnectionFactory.VirtualHost = this.VirtualHost;
        }
 public RabbitMQChannelFactory(BindingContext context)
 {
     _context        = context;
     _openMethod     = Open;
     _bindingElement = context.Binding.Elements.Find <RabbitMQTransportBindingElement>();
     _model          = null;
 }
 public RabbitMQChannelFactory(BindingContext bindingContext)
 {
     this._openMethod     = this.Open;
     this._context        = bindingContext;
     this._bindingElement = bindingContext.Binding.Elements.Find <RabbitMQTransportBindingElement>();
     this._model          = null;
 }
Exemple #5
0
 public RabbitMQChannelFactory(BindingContext context)
 {
     m_context        = context;
     m_openMethod     = new CommunicationOperation(Open);
     m_bindingElement = context.Binding.Elements.Find <RabbitMQTransportBindingElement>();
     m_model          = null;
 }
 private RabbitMQTransportBindingElement(RabbitMQTransportBindingElement transportBindingElement)
 {
     this.HostName               = transportBindingElement.HostName;
     this.Port                   = transportBindingElement.Port;
     this.Username               = transportBindingElement.Username;
     this.Password               = transportBindingElement.Password;
     this.VirtualHost            = transportBindingElement.VirtualHost;
     this.MaxReceivedMessageSize = transportBindingElement.MaxReceivedMessageSize;
 }
Exemple #7
0
 private RabbitMQTransportBindingElement(RabbitMQTransportBindingElement other)
 {
     HostName               = other.HostName;
     Port                   = other.Port;
     BrokerProtocol         = other.BrokerProtocol;
     Username               = other.Username;
     Password               = other.Password;
     VirtualHost            = other.VirtualHost;
     MaxReceivedMessageSize = other.MaxReceivedMessageSize;
 }
        public RabbitMQOutputChannel(BindingContext context, IModel model, EndpointAddress address)
            : base(context, address)
        {
            m_bindingElement = context.Binding.Elements.Find <RabbitMQTransportBindingElement>();
            MessageEncodingBindingElement encoderElement = context.Binding.Elements.Find <MessageEncodingBindingElement>();

            if (encoderElement != null)
            {
                m_encoder = encoderElement.CreateMessageEncoderFactory().Encoder;
            }
            m_model = model;
        }
        public RabbitMQInputChannel(BindingContext context, IModel model, EndpointAddress address)
            : base(context, address)
        {
            m_bindingElement = context.Binding.Elements.Find <RabbitMQTransportBindingElement>();
            TextMessageEncodingBindingElement encoderElem = context.BindingParameters.Find <TextMessageEncodingBindingElement>();

            encoderElem.ReaderQuotas.MaxStringContentLength = (int)m_bindingElement.MaxReceivedMessageSize;
            if (encoderElem != null)
            {
                m_encoder = encoderElem.CreateMessageEncoderFactory().Encoder;
            }
            m_model        = model;
            m_messageQueue = null;
        }
        public RabbitMQOutputChannel(BindingContext bindingContext, IModel model, EndpointAddress endpointAddress)
            : base(bindingContext, endpointAddress)
        {
            this._bindingElement = bindingContext.Binding.Elements.Find <RabbitMQTransportBindingElement>();
            this._model          = model;

            MessageEncodingBindingElement encoderElement = bindingContext.Binding.Elements.Find <MessageEncodingBindingElement>();

            if (encoderElement != null)
            {
                MessageEncoderFactory encoderFactory = encoderElement.CreateMessageEncoderFactory();
                this._encoder = encoderFactory.Encoder;
            }
        }
 private void Initialize()
 {
     lock (this)
     {
         if (!this._isInitialized)
         {
             this._isInitialized   = true;
             this._transport       = new RabbitMQTransportBindingElement();
             this._encoding        = new TextMessageEncodingBindingElement();
             this._compositeDuplex = new CompositeDuplexBindingElement();
             this._transactionFlow = new TransactionFlowBindingElement();
             this.MaxMessageSize   = DefaultMaxMessageSize;
         }
     }
 }
Exemple #12
0
 private void Initialize()
 {
     lock (this)
     {
         if (!m_isInitialized)
         {
             m_transport       = new RabbitMQTransportBindingElement();
             m_encoding        = new TextMessageEncodingBindingElement(); // new TextMessageEncodingBindingElement();
             m_session         = new ReliableSessionBindingElement();
             m_compositeDuplex = new CompositeDuplexBindingElement();
             m_transactionFlow = new TransactionFlowBindingElement();
             m_maxMessageSize  = DefaultMaxMessageSize;
             m_isInitialized   = true;
         }
     }
 }
        protected RabbitMQChannelListenerBase(BindingContext context)
        {
            _context              = context;
            m_bindingElement      = context.Binding.Elements.Find <RabbitMQTransportBindingElement>();
            _closeMethod          = OnClose;
            _openMethod           = OnOpen;
            _waitForChannelMethod = OnWaitForChannel;
            _acceptChannelMethod  = OnAcceptChannel;

            if (context.ListenUriMode == ListenUriMode.Explicit && context.ListenUriBaseAddress != null)
            {
                _listenUri = new Uri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);
            }
            else
            {
                _listenUri = new Uri(new Uri("soap.amqp:///"), Guid.NewGuid().ToString());
            }
        }
        public RabbitMQInputChannel(BindingContext bindingContext, IModel model, EndpointAddress address)
            : base(bindingContext, address)
        {
            this._bindingElement = bindingContext.Binding.Elements.Find <RabbitMQTransportBindingElement>();
            this._model          = model;
            this._queue          = new BlockingCollection <BasicDeliverEventArgs>(new ConcurrentQueue <BasicDeliverEventArgs>());

            TextMessageEncodingBindingElement encoderElement = bindingContext.BindingParameters.Find <TextMessageEncodingBindingElement>();

            if (encoderElement != null)
            {
                encoderElement.ReaderQuotas.MaxStringContentLength = (int)this._bindingElement.MaxReceivedMessageSize;
                MessageEncoderFactory encoderFactory = encoderElement.CreateMessageEncoderFactory();
                this._encoder = encoderFactory.Encoder;
            }

            this._consumer = null;
        }
        protected RabbitMQChannelListenerBase(BindingContext bindingContext)
        {
            this._acceptChannelMethod  = this.OnAcceptChannel;
            this._waitForChannelMethod = this.OnWaitForChannel;
            this._openMethod           = this.OnOpen;
            this._closeMethod          = this.OnClose;
            this._bindingContext       = bindingContext;
            this._bindingElement       = bindingContext.Binding.Elements.Find <RabbitMQTransportBindingElement>();

            if (bindingContext.ListenUriMode == ListenUriMode.Explicit && bindingContext.ListenUriBaseAddress != null)
            {
                this._listenUri = new Uri(bindingContext.ListenUriBaseAddress, bindingContext.ListenUriRelativeAddress);
            }
            else
            {
                Uri baseUri = new Uri("soap.amqp:///");
                this._listenUri = new Uri(baseUri, Guid.NewGuid().ToString());
            }
        }