Exemple #1
0
        IAsyncResult IRequestReplyRouter.BeginProcessRequest(Message message, AsyncCallback callback, object state)
        {
            if (request_reply_channel != null)
            {
                throw new InvalidOperationException("Another async request operation is in progress");
            }

            var             sel = GetMatchingEndpoints(message);
            ServiceEndpoint se  = null;

            foreach (var se_ in sel)
            {
                if (se != null)
                {
                    throw new InvalidOperationException("Multiple endpoints cannot be specified for request-reply channel");
                }
                se = se_;
            }
            if (se == null)
            {
                throw new InvalidOperationException("No service endpoint is registered to the request-reply channel");
            }

            if (request_reply_factory == null)
            {
                request_reply_factory = new ChannelFactory <IRequestReplyRouter> (se);
            }
            request_reply_channel = request_reply_factory.CreateChannel();
            return(request_reply_channel.BeginProcessRequest(message, null, null));
        }
Exemple #2
0
        Message IRequestReplyRouter.EndProcessRequest(IAsyncResult result)
        {
            if (request_reply_channel == null)
            {
                throw new InvalidOperationException("Async request has not started");
            }
            var ch = request_reply_channel;

            request_reply_channel = null;
            return(ch.EndProcessRequest(result));
        }
Exemple #3
0
		Message IRequestReplyRouter.EndProcessRequest (IAsyncResult result)
		{
			if (request_reply_channel == null)
				throw new InvalidOperationException ("Async request has not started");
			var ch = request_reply_channel;
			request_reply_channel = null;
			return ch.EndProcessRequest (result);
		}
Exemple #4
0
		IAsyncResult IRequestReplyRouter.BeginProcessRequest (Message message, AsyncCallback callback, object state)
		{
			if (request_reply_channel != null)
				throw new InvalidOperationException ("Another async request operation is in progress");

			var sel = GetMatchingEndpoints (message);
			ServiceEndpoint se = null;
			foreach (var se_ in sel) {
				if (se != null)
					throw new InvalidOperationException ("Multiple endpoints cannot be specified for request-reply channel");
				se = se_;
			}
			if (se == null)
				throw new InvalidOperationException ("No service endpoint is registered to the request-reply channel");

			if (request_reply_factory == null)
				request_reply_factory = new ChannelFactory<IRequestReplyRouter> (se);
			request_reply_channel = request_reply_factory.CreateChannel ();
			return request_reply_channel.BeginProcessRequest (message, null, null);
		}