public WebSocketDuplexChannelListener(WebSocketTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            this.bufferManager = BufferManager.CreateBufferManager(WebSocketTransportBindingElement.MaxBufferSize * 10,
                                                                   WebSocketTransportBindingElement.MaxBufferSize);

            //Collection<MessageEncodingBindingElement> messageEncoderBindingElements
            //    = context.BindingParameters.FindAll<MessageEncodingBindingElement>();

            //if (messageEncoderBindingElements.Count > 1)
            //{
            //    throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            //}
            //else if (messageEncoderBindingElements.Count == 1)
            //{
            //    this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            //}
            //else
            //{
            this.encoderFactory = new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, Encoding.UTF8).CreateMessageEncoderFactory();
            //BinaryMessageEncodingBindingElement encodingBindingElement = new BinaryMessageEncodingBindingElement();
            //encodingBindingElement.MessageVersion = MessageVersion.Soap12WSAddressing10;
            //this.encoderFactory = encodingBindingElement.CreateMessageEncoderFactory();
            //}

            this.uri = new Uri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);
        }
        public WseTcpChannelListener(WseTcpTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            int maxBufferSize = (int)bindingElement.MaxReceivedMessageSize;

            this.bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, maxBufferSize);

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.encoderFactory = new MtomMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }

            // TODO, kennyw, context.ListenUriMode
            this.uri = new Uri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);
        }
Esempio n. 3
0
        private bool hostStarted;                                               // Indicates whether call to ChannelHost.Start() is current

        //---------------------------------------------------------------------
        // Implementation

        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="context">The <see cref="BindingContext" /> holding the information necessary to construct the channel stack.</param>
        /// <exception cref="InvalidOperationException">Thrown if problems were found with the binding parameters.</exception>
        internal LillTekChannelListener(BindingContext context)
        {
            this.maxAcceptedChannels = ServiceModelHelper.MaxAcceptedChannels;      // $todo(jeff.lill): Hardcoded
            bkTaskInterval           = ServiceModelHelper.DefaultBkTaskInterval;    //                   This too

            this.context     = context;
            this.uri         = GetListenUri(context);
            this.ep          = ServiceModelHelper.ToMsgEP(uri);
            this.onBkTask    = new AsyncCallback(OnBkTask);
            this.sessionMode = false;
            this.hostStarted = false;

            // Initialize the message encoder factory from the binding context if
            // one was specified.  Use the binary message encoding factory otherwise.

            if (context.BindingParameters.FindAll <MessageEncodingBindingElement>().Count > 1)
            {
                throw new InvalidOperationException("Multiple MessageEncodingBindingElements were found in the BindingParameters of the BindingContext.");
            }

            MessageEncodingBindingElement element = context.BindingParameters.Find <MessageEncodingBindingElement>();

            if (element != null)
            {
                messageEncoderFactory = element.CreateMessageEncoderFactory();
            }
            else
            {
                messageEncoderFactory = new BinaryMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }
        }
Esempio n. 4
0
    public MockChannelFactory(BindingContext context, MessageEncoderFactory encoderFactory)
        : base(context.Binding)
    {
        MessageEncoderFactory = encoderFactory;

        OnCreateChannelOverride = DefaultOnCreateChannel;

        OpenAsyncResult  = new MockAsyncResult();
        CloseAsyncResult = new MockAsyncResult();

        // Each overrideable method has a delegate property that
        // can be set to override it, please a default handler.

        // CommunicationObject overrides
        DefaultCloseTimeoutOverride = DefaultDefaultCloseTimeout;
        DefaultOpenTimeoutOverride  = DefaultDefaultOpenTimeout;

        OnAbortOverride = DefaultOnAbort;
        OnOpenOverride  = DefaultOnOpen;
        OnCloseOverride = DefaultOnClose;

        OnBeginOpenOverride = DefaultOnBeginOpen;
        OnEndOpenOverride   = DefaultOnEndOpen;

        OnBeginCloseOverride = DefaultOnBeginClose;
        OnEndCloseOverride   = DefaultOnEndClose;

        // All the virtuals
        OnOpeningOverride = DefaultOnOpening;
        OnOpenedOverride  = DefaultOnOpened;
        OnClosingOverride = DefaultOnClosing;
        OnClosedOverride  = DefaultOnClosed;
        OnFaultedOverride = DefaultOnFaulted;
    }
Esempio n. 5
0
        /// <summary>
        /// SerialChannel Base
        /// </summary>
        /// <param name="bufferManager">
        /// Buffer manager created by factory and listener</param>
        /// <param name="encoderFactory">
        /// Referece to encoder factory as returned by encoder element</param>
        /// <param name="address">Remote address</param>
        /// <param name="portNumber">COM port number</param>
        /// <param name="parent">reference to factory/listener</param>
        /// <param name="maxReceivedMessageSize">
        /// Some settings for transport channel</param>
        public SerialChannelBase(BufferManager bufferManager,
                                 MessageEncoderFactory encoderFactory,
                                 EndpointAddress address,
                                 string portNumber,
                                 ChannelManagerBase parent,
                                 long maxReceivedMessageSize)
            : base(parent)
        {
            this.address                = address;
            this.bufferManager          = bufferManager;
            this.encoder                = encoderFactory.CreateSessionEncoder();
            this.maxReceivedMessageSize = maxReceivedMessageSize;

            this.portNumber = portNumber;

            // Create port
            serialPort = new SerialPort();

            // Set the appropriate properties.
            serialPort.PortName = this.portNumber;
            //TODO: Read these settings from configuration file
            serialPort.BaudRate  = 9600;
            serialPort.Parity    = Parity.None;
            serialPort.DataBits  = 8;
            serialPort.StopBits  = StopBits.One;
            serialPort.Handshake = Handshake.None;

            // Set the read/write timeouts
            serialPort.ReadTimeout  = 500;
            serialPort.WriteTimeout = 500;
        }
Esempio n. 6
0
 public ServerDuplexSessionChannel(MessageEncoderFactory messageEncoderFactory, BufferManager bufferManager, int maxBufferSize,
                                   IAsyncDvcChannel socket, EndpointAddress localAddress, ChannelManagerBase channelManager)
     : base(messageEncoderFactory, bufferManager, maxBufferSize, AnonymousAddress, localAddress,
            AnonymousAddress.Uri, channelManager)
 {
     base.InitializeSocket(socket);
 }
 public ServiceChannelProxy(Uri address, MessageVersion messageVersion, MessageEncoderFactory encoderFactory) : base(typeof(TChannel))
 {
     this.Address               = address;
     this.MessageVersion        = messageVersion;
     this.MessageEncoderFactory = encoderFactory;
     this.MessageFormatters     = new Dictionary <string, IClientMessageFormatter>();
 }
        public SsbChannelFactory(SsbBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            this.connstr                    = bindingElement.SqlConnectionString;
            this.bufferManager              = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, int.MaxValue);
            this.endConversationOnClose     = bindingElement.SenderEndsConversationOnClose;
            this.useEncryption              = bindingElement.UseEncryption;
            this.contract                   = bindingElement.Contract;
            this.useActionForSsbMessageType = bindingElement.UseActionForSsbMessageType;

            this.binding = context.Binding;

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                this.messageEncoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.messageEncoderFactory = SsbConstants.DefaultMessageEncoderFactory;
            }
        }
Esempio n. 9
0
        public SizedTcpChannelFactory(SizedTcpTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            int maxBufferSize = (int)bindingElement.MaxReceivedMessageSize;

            this.bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, maxBufferSize);

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                if (!(messageEncoderBindingElements[0] is ByteStreamMessageEncodingBindingElement))
                {
                    throw new InvalidOperationException("This transport must be used with the ByteStreamMessageEncodingBindingElement.");
                }

                this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.encoderFactory = new ByteStreamMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }
        }
 public TableRequestChannelFactory(BindingContext context, TableTransportBindingElement element) : base(context.Binding)
 {
     this.encoderFactory     = context.BindingParameters.Remove <MessageEncodingBindingElement>().CreateMessageEncoderFactory();
     this.bufferManager      = BufferManager.CreateBufferManager(element.MaxBufferPoolSize, int.MaxValue);
     this.targetPartitionKey = element.TargetPartitionKey;
     this.storageAccount     = CloudStorageAccount.Parse(element.ConnectionString);
 }
Esempio n. 11
0
 public ServerTcpDuplexSessionChannel(MessageEncoderFactory messageEncoderFactory, BufferManager bufferManager,
                                      Socket socket, EndpointAddress localAddress, ChannelManagerBase channelManager)
     : base(messageEncoderFactory, bufferManager, WseTcpDuplexSessionChannel.AnonymousAddress, localAddress,
            WseTcpDuplexSessionChannel.AnonymousAddress.Uri, channelManager)
 {
     base.InitializeSocket(socket);
 }
Esempio n. 12
0
        internal AmqpChannelFactory(AmqpTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            this.bindingElement    = bindingElement;
            this.bindingContext    = context;
            this.channelProperties = bindingElement.ChannelProperties.Clone();
            this.shared            = bindingElement.Shared;
            this.prefetchLimit     = bindingElement.PrefetchLimit;
            this.maxBufferPoolSize = bindingElement.MaxBufferPoolSize;
            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                this.messageEncoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.messageEncoderFactory = new TextMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }

            openChannels = new List <AmqpTransportChannel>();
        }
Esempio n. 13
0
        public SizedTcpDuplexChannelFactory(SizedTcpDuplexTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            int maxBufferSize = (int)bindingElement.MaxReceivedMessageSize;

            this.bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, maxBufferSize);

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                if (messageEncoderBindingElements[0].MessageVersion != MessageVersion.Soap12WSAddressing10)
                {
                    throw new InvalidOperationException("This transport must be used with the an encoding with MessageVersion.Soap12WSAddressing10.");
                }

                this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.encoderFactory = new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, Encoding.UTF8).CreateMessageEncoderFactory();
            }
        }
        public SolaceChannelListener(SolaceTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            int maxBufferSize = (int)bindingElement.MaxReceivedMessageSize;

            bufferManager = BufferManager.CreateBufferManager(bindingElement.MaxBufferPoolSize, maxBufferSize);
            enpointCache  = bindingElement.EndpointCache;

            converters = context.BindingParameters.FindAll <IMessageConverter>();

            var messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                if (!(messageEncoderBindingElements[0] is ByteStreamMessageEncodingBindingElement))
                {
                    throw new InvalidOperationException("This transport must be used with the ByteStreamMessageEncodingBindingElement.");
                }

                encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                encoderFactory = new ByteStreamMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }

            uri = new Uri(context.ListenUriBaseAddress, context.ListenUriRelativeAddress);
        }
Esempio n. 15
0
        public WebSocketDuplexChannelFactory(WebSocketTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            // populate members from binding element
            this.bufferManager = BufferManager.CreateBufferManager(WebSocketTransportBindingElement.MaxBufferSize * 10,
                                                                   WebSocketTransportBindingElement.MaxBufferSize);

            //Collection<MessageEncodingBindingElement> messageEncoderBindingElements
            //    = context.BindingParameters.FindAll<MessageEncodingBindingElement>();

            //if (messageEncoderBindingElements.Count > 1)
            //{
            //    throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            //}
            //else if (messageEncoderBindingElements.Count == 1)
            //{
            //    this.encoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            //}
            //else
            //{
            this.encoderFactory = new TextMessageEncodingBindingElement(MessageVersion.Soap12WSAddressing10, Encoding.UTF8).CreateMessageEncoderFactory();
            //BinaryMessageEncodingBindingElement encodingBindingElement = new BinaryMessageEncodingBindingElement();
            //encodingBindingElement.MessageVersion = MessageVersion.Soap12WSAddressing10;
            //this.encoderFactory = encodingBindingElement.CreateMessageEncoderFactory();
            //}

            this.useProxy          = bindingElement.UseProxy;
            this.proxyUri          = string.IsNullOrEmpty(bindingElement.ProxyUri) ? null : new Uri(bindingElement.ProxyUri);
            this.proxyAuthUserName = bindingElement.ProxyAuthUserName;
            this.proxyAuthPassword = bindingElement.ProxyAuthPassword;
        }
        private static HandshakeDelegate BuildHandshakeDelegateForDispatcher(IServiceDispatcher dispatcher)
        {
            var be   = dispatcher.Binding.CreateBindingElements();
            var mebe = be.Find <MessageEncodingBindingElement>();
            MessageEncoderFactory mefact = mebe.CreateMessageEncoderFactory();
            var tbe = be.Find <TransportBindingElement>();
            int maxReceivedMessageSize = (int)Math.Min(tbe.MaxReceivedMessageSize, int.MaxValue);
            var bufferManager          = BufferManager.CreateBufferManager(tbe.MaxBufferPoolSize, maxReceivedMessageSize);

            var upgradeBindingElements = (from element in be where element is StreamUpgradeBindingElement select element).Cast <StreamUpgradeBindingElement>().ToList();
            StreamUpgradeProvider streamUpgradeProvider = null;
            ISecurityCapabilities securityCapabilities  = null;

            if (upgradeBindingElements.Count > 1)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.MultipleStreamUpgradeProvidersInParameters));
            }
            // TODO: Limit NamedPipes to prevent it using SslStreamSecurityUpgradeProvider
            else if ((upgradeBindingElements.Count == 1) /*&& this.SupportsUpgrade(upgradeBindingElements[0])*/)
            {
                var bindingContext = new BindingContext(new CustomBinding(dispatcher.Binding), new BindingParameterCollection());
                streamUpgradeProvider = upgradeBindingElements[0].BuildServerStreamUpgradeProvider(bindingContext);
                streamUpgradeProvider.OpenAsync().GetAwaiter().GetResult();
                securityCapabilities = upgradeBindingElements[0].GetProperty <ISecurityCapabilities>(bindingContext);
            }
            return((connection) =>
            {
                connection.MessageEncoderFactory = mefact;
                connection.StreamUpgradeAcceptor = streamUpgradeProvider?.CreateUpgradeAcceptor();
                connection.SecurityCapabilities = securityCapabilities;
                connection.ServiceDispatcher = dispatcher;
                connection.BufferManager = bufferManager;
                return Task.CompletedTask;
            });
        }
Esempio n. 17
0
    public MockChannelBase(ChannelManagerBase manager, MessageEncoderFactory encoderFactory, EndpointAddress address)
        : base(manager)
    {
        _address = address;
        _manager = manager;
        _encoder = encoderFactory.CreateSessionEncoder();

        OpenAsyncResult  = new MockAsyncResult();
        CloseAsyncResult = new MockAsyncResult();

        GetEndpointPropertyOverride = DefaultGetEndpointProperty;

        // CommunicationObject overrides
        DefaultCloseTimeoutOverride = DefaultDefaultCloseTimeout;
        DefaultOpenTimeoutOverride  = DefaultDefaultOpenTimeout;

        OnAbortOverride = DefaultOnAbort;
        OnOpenOverride  = DefaultOnOpen;
        OnCloseOverride = DefaultOnClose;

        OnBeginOpenOverride = DefaultOnBeginOpen;
        OnEndOpenOverride   = DefaultOnEndOpen;

        OnBeginCloseOverride = DefaultOnBeginClose;
        OnEndCloseOverride   = DefaultOnEndClose;

        // All the virtuals
        OnOpeningOverride = DefaultOnOpening;
        OnOpenedOverride  = DefaultOnOpened;
        OnClosingOverride = DefaultOnClosing;
        OnClosedOverride  = DefaultOnClosed;
        OnFaultedOverride = DefaultOnFaulted;
    }
Esempio n. 18
0
        internal AmqpChannelListener(AmqpTransportBindingElement bindingElement, BindingContext context)
            : base(context.Binding)
        {
            this.bindingElement    = bindingElement;
            this.channelProperties = bindingElement.ChannelProperties.Clone();
            this.bindingContext    = context;
            this.shared            = bindingElement.Shared;
            this.prefetchLimit     = bindingElement.PrefetchLimit;

            this.maxBufferPoolSize = bindingElement.MaxBufferPoolSize;

            // TODO: review this.  Should be unique hostname based
            this.uri = context.ListenUriBaseAddress;
            this.asyncOnAcceptCaller = new AsyncOnAcceptCaller(this.OnAcceptChannel);
            this.acceptWaitEvent     = new ManualResetEvent(false);

            Collection <MessageEncodingBindingElement> messageEncoderBindingElements
                = context.BindingParameters.FindAll <MessageEncodingBindingElement>();

            if (messageEncoderBindingElements.Count > 1)
            {
                throw new InvalidOperationException("More than one MessageEncodingBindingElement was found in the BindingParameters of the BindingContext");
            }
            else if (messageEncoderBindingElements.Count == 1)
            {
                this.messageEncoderFactory = messageEncoderBindingElements[0].CreateMessageEncoderFactory();
            }
            else
            {
                this.messageEncoderFactory = new TextMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }
        }
Esempio n. 19
0
        private bool hostStarted;                                       // Indicates whether call to ChannelHost.Start() is current

        /// <summary>
        /// Constructor.
        /// </summary>
        /// <param name="context">The <see cref="BindingContext" />.</param>
        /// <exception cref="InvalidOperationException">Thrown if problems were found with the binding parameters.</exception>
        public LillTekChannelFactory(BindingContext context)
            : base()
        {
            this.channels    = new Dictionary <string, TInternal>();
            this.hostStarted = false;

            // Initialize the message encoder factory from the binding context if
            // one was specified.  Use the binary message encoding factory otherwise.

            if (context.BindingParameters.FindAll <MessageEncodingBindingElement>().Count > 1)
            {
                throw new InvalidOperationException("Multiple MessageEncodingBindingElements were found in the BindingParameters of the BindingContext.");
            }

            MessageEncodingBindingElement element = context.BindingParameters.Find <MessageEncodingBindingElement>();

            if (element != null)
            {
                messageEncoderFactory = element.CreateMessageEncoderFactory();
            }
            else
            {
                messageEncoderFactory = new BinaryMessageEncodingBindingElement().CreateMessageEncoderFactory();
            }
        }
Esempio n. 20
0
 public WcfHandler(Type serviceType, MessageEncoderFactory messageEncoderFactory)
 {
     ServiceType           = ServiceType;
     MessageEncoderFactory = messageEncoderFactory;
     Methods                   = new Dictionary <string, MethodInfo>();
     OperationInvokers         = new Dictionary <string, IOperationInvoker>();
     DispatchMessageFormatters = new Dictionary <string, IDispatchMessageFormatter>();
 }
 //The WcfCompress encoder wraps an inner encoder
 //We require a factory to be passed in that will create this inner encoder
 public WcfCompressMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory, CompressionFormat compressionFormat)
 {
     if (messageEncoderFactory == null)
     {
         throw new ArgumentNullException("messageEncoderFactory", "A valid message encoder factory must be passed to the WcfCompressEncoder");
     }
     encoder = new WcfCompressMessageEncoder(messageEncoderFactory.Encoder, compressionFormat);
 }
Esempio n. 22
0
 public ChannelProxy(Uri uri, MessageVersion mv, MessageEncoderFactory encoder)
     : base(typeof(TChannel))
 {
     this.Address = uri;
     this.MessageEncoderFactory = encoder;
     this.MessageVersion        = mv;
     this.MessageFormatter      = new Dictionary <string, IClientMessageFormatter>();
 }
 public BankConnectMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory)
 {
     if (messageEncoderFactory == null)
     {
         throw new ArgumentNullException(nameof(messageEncoderFactory));
     }
     encoder = new BankConnectMessageEncoder(messageEncoderFactory.Encoder);
 }
 //The GZip encoder wraps an inner encoder
 //We require a factory to be passed in that will create this inner encoder
 public GZipMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory)
 {
     if (messageEncoderFactory == null)
     {
         throw new ArgumentNullException("messageEncoderFactory", "A valid message encoder factory must be passed to the GZipEncoder");
     }
     encoder = new GZipMessageEncoder(messageEncoderFactory.Encoder);
 }
Esempio n. 25
0
        public void CreateMessageEncoderFactory_Returns_An_HttpMessageEncoderFactory()
        {
            HttpMessageEncodingBindingElement encoding       = new HttpMessageEncodingBindingElement();
            MessageEncoderFactory             encoderFactory = encoding.CreateMessageEncoderFactory();

            Assert.IsNotNull(encoderFactory, "HttpMessageEncodingBindingElement.CreateMessageEncoderFactory should not have returned null.");
            Assert.IsInstanceOfType(encoderFactory, typeof(HttpMessageEncoderFactory), "HttpMessageEncodingBindingElement.CreateMessageEncoderFactory should have returned an instance of a HttpMessageEncoderFactory.");
        }
 /// <summary>
 /// ServicesMessageEncoderFactory Class
 /// </summary>
 public ServicesMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory)
 {
     if (messageEncoderFactory == null)
     {
         throw new ArgumentNullException("messageEncoderFactory", "A valid message encoder factory must be passed to the Replay Encoder");
     }
     encoder = new SercicesMessageEncoder(messageEncoderFactory.Encoder);
 }
Esempio n. 27
0
 internal MsmqInputChannelListenerBase(MsmqBindingElementBase bindingElement,
                                       BindingContext context,
                                       MsmqReceiveParameters receiveParameters,
                                       MessageEncoderFactory encoderFactory)
     : base(bindingElement, context, receiveParameters, encoderFactory)
 {
     this.acceptor = new InputQueueChannelAcceptor <IInputChannel>(this);
 }
Esempio n. 28
0
        public LoggingMessageEncoderFactory(MessageEncoderFactory messageEncoderFactory)
        {
            if (messageEncoderFactory == null)
            {
                throw new ArgumentNullException("messageEncoderFactory");
            }

            this.loggingEncoder = new LoggingMessageEncoder(messageEncoderFactory.Encoder);
        }
Esempio n. 29
0
    public MockRequestChannel(ChannelManagerBase manager, MessageEncoderFactory encoderFactory, EndpointAddress address, Uri via)
        : base(manager, encoderFactory, address)
    {
        this._via = via;

        RequestOverride      = DefaultRequest;
        BeginRequestOverride = DefaultBeginRequest;
        EndRequestOverride   = DefaultEndRequest;
    }
 /// <summary>
 /// Constructor called by factory.
 /// </summary>
 /// <param name="bufferManager">
 /// Buffer manager used to send receive messages</param>
 /// <param name="encoderFactory">
 /// Encoder factory as received by parent</param>
 /// <param name="address">Remote address</param>
 /// <param name="parent">Reference to parent</param>
 /// <param name="via">via in case of routing</param>
 public SerialRequestChannel(BufferManager bufferManager,
                             MessageEncoderFactory encoderFactory, EndpointAddress address,
                             SerialRequestChannelFactory parent, Uri via)
     : base(bufferManager, encoderFactory, address,
            parent.PortNumber, parent, parent.MaxReceivedMessageSize)
 {
     this.via       = via;
     this.writeLock = new object();
 }