コード例 #1
0
ファイル: Object.cs プロジェクト: pirater/ice
        public override DispatchStatus dispatch__(IceInternal.Incoming inS__, Current current)
        {
            byte[] inEncaps = inS__.readParamEncaps();
            var    in__     = new IceInternal.IncomingAsync(inS__);

            try
            {
                ice_invokeAsync(inEncaps, current).ContinueWith(
                    (t) =>
                {
                    try
                    {
                        var ret__ = t.Result;
                        in__.writeParamEncaps__(ret__.outEncaps, ret__.returnValue);
                    }
                    catch (AggregateException ae)
                    {
                        in__.exception__(ae.InnerException);
                        return;
                    }
                    in__.response__();
                });
            }
            catch (System.Exception ex)
            {
                in__.ice_exception(ex);
            }
            return(DispatchStatus.DispatchAsync);
        }
コード例 #2
0
ファイル: Object.cs プロジェクト: chuanqingli/ice
 public override Task <Ice.OutputStream> iceDispatch(IceInternal.Incoming inS, Current current)
 {
     byte[] inEncaps = inS.readParamEncaps();
     return(ice_invokeAsync(inEncaps, current).ContinueWith((Task <Object_Ice_invokeResult> t) =>
     {
         var ret = t.GetAwaiter().GetResult();
         return Task.FromResult(inS.writeParamEncaps(ret.outEncaps, ret.returnValue));
     }).Unwrap());
 }
コード例 #3
0
ファイル: Object.cs プロジェクト: chuanqingli/ice
        public override Task <OutputStream> iceDispatch(IceInternal.Incoming inS, Current current)
        {
            byte[] inEncaps = inS.readParamEncaps();
            byte[] outEncaps;
            bool   ok = ice_invoke(inEncaps, out outEncaps, current);

            inS.setResult(inS.writeParamEncaps(outEncaps, ok));
            return(null);
        }
コード例 #4
0
ファイル: Object.cs プロジェクト: l64848810/ice
        public override Task <Ice.OutputStream> iceDispatch(IceInternal.Incoming inS, Current current)
        {
            byte[] inEncaps = inS.readParamEncaps();
            var    task     = ice_invokeAsync(inEncaps, current);
            var    cached   = inS.getAndClearCachedOutputStream();

            return(task.ContinueWith((Task <Object_Ice_invokeResult> t) =>
            {
                var ret = t.GetAwaiter().GetResult();
                return Task.FromResult(inS.writeParamEncaps(cached, ret.outEncaps, ret.returnValue));
            },
                                     TaskScheduler.Current).Unwrap());
        }
コード例 #5
0
        public override DispatchStatus dispatch__(IceInternal.Incoming inS__, Current current)
        {
            byte[] inEncaps          = inS__.readParamEncaps();
            AMD_Object_ice_invoke cb = new _AMD_Object_ice_invoke(inS__);

            try
            {
                ice_invoke_async(cb, inEncaps, current);
            }
            catch (System.Exception ex)
            {
                cb.ice_exception(ex);
            }
            return(DispatchStatus.DispatchAsync);
        }
コード例 #6
0
        public override DispatchStatus dispatch__(IceInternal.Incoming inS__, Current current)
        {
            byte[] inEncaps = inS__.readParamEncaps();
            byte[] outEncaps;
            bool   ok = ice_invoke(inEncaps, out outEncaps, current);

            inS__.writeParamEncaps__(outEncaps, ok);
            if (ok)
            {
                return(DispatchStatus.DispatchOK);
            }
            else
            {
                return(DispatchStatus.DispatchUserException);
            }
        }