コード例 #1
0
        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);
        }
コード例 #2
0
 public override Task <Ice.OutputStream> iceDispatch(IceInternal.Incoming inS, Current current)
 {
     byte[] inEncaps = inS.readParamEncaps();
     return(ice_invokeAsync(inEncaps, current).ContinueWith((Task <Ice.Object_Ice_invokeResult> t) =>
     {
         var ret = t.GetAwaiter().GetResult();
         return Task.FromResult <Ice.OutputStream>(inS.writeParamEncaps(ret.outEncaps, ret.returnValue));
     }).Unwrap());
 }
コード例 #3
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());
        }