public virtual void callAsync(T args, string consumerId, ICallAsyncListener <T> listener, int timeout) { Message <T> envelope = new Message <T>(); envelope.Id = (queuePath + "/call-" + callCurId++); envelope.Body = (args); MessageEnvelope argsEnv = envelope.createEnvelope(); argsEnv.Body.MessageUserBody.QueuePath = this.QueuePath; argsEnv.Body.MessageUserBody.ConsumerId = consumerId; IConsumer <T> consumer = null; lock (consumers) { if (!consumers.ContainsKey(consumerId)) { throw new Exception("Consumer with id:" + consumerId + " not found!"); } else { consumer = consumers[consumerId]; } } if (consumer is IRemoteConsumer <T> ) { ITransport consTransport = ((IRemoteConsumer <T>)consumer).NetworkTransport; consTransport.callAsync(argsEnv, new ProxyCallAsyncListener <T>(listener), timeout); } else { throw new System.Exception("Call enabled only for remote consumer !"); } }
public void callAsync(T args, ITransport forTransport, ICallAsyncListener <T> listener, int timeout) { Message <T> envelope = new Message <T>(); envelope.Id = (this.sessionName + "/call-" + callCurId++); envelope.Body = (args); MessageEnvelope argsEnv = envelope.createEnvelope(); argsEnv.Body.MessageUserBody.QueuePath = (this.sessionName); argsEnv.Body.MessageUserBody.ConsumerId = (this.pointName); forTransport.callAsync(argsEnv, new ProxyCallAsyncListener <T>(listener), timeout); }
public virtual void callAsync(T args, string consumerId, ICallAsyncListener <T> listener) { callAsync(args, consumerId, listener, 120); }
public ProxyCallAsyncListener(ICallAsyncListener <T> listener) { this.listener = listener; }
public void callAsync(T args, ICallAsyncListener <T> listener, int timeout) { callAsync(args, this.transport, listener, timeout); }
public void callAsync(T args, ICallAsyncListener <T> listener) { callAsync(args, this.transport, listener); }
public void callAsync(T args, ITransport forTransport, ICallAsyncListener <T> listener) { callAsync(args, forTransport, listener, 120); }