Ejemplo n.º 1
0
        public void BeginInvoke <TArgs>(string methodName, TArgs args, Action <RpcClientContext> callback)
        {
            if (callback == null)
            {
                throw new NotSupportedException("callback *MUST NOT* be null!");
            }

            _perfCounters.InvokeTotal.Increment();
            _perfCounters.InvokePerSec.Increment();
            _perfCounters.ConcurrentContext.Increment();

            RpcRequestHeader request = new RpcRequestHeader();

            request.FromComputer = ServiceEnviornment.ComputerName;
            request.FromService  = ServiceEnviornment.ServiceName;
            request.Service      = _serviceName;
            request.Method       = methodName;
            request.ServerUri    = _nexus.ServerUri.ToString();
            request.ToUri        = ObjectHelper.ToString(_toUri);
            request.HasBody      = typeof(TArgs) != typeof(RpcNull) && args != null;

            IRpcClientTransaction trans = _nexus.CreateTransaction();
            RpcClientContext      ctx   = new RpcClientContext(request, callback, trans, _nexus.ServiceRole);

            ctx.SendRequest <TArgs>(args, _timeout);
        }
Ejemplo n.º 2
0
 internal RpcClientContext(RpcRequestHeader request, Action <RpcClientContext> callback, IRpcClientTransaction trans, string serviceRole)
 {
     _trans       = trans;
     _request     = request;
     _callback    = callback;
     _serviceUrl  = string.Format("{0}/{1}.{2}", request.ServerUri, request.Service, request.Method);
     _serviceRole = serviceRole;
 }