Ejemplo n.º 1
0
        static void OnFfiResultIpcReqErrorCb(IntPtr userData, IntPtr result, string msg)
        {
            var tcs       = BindingUtils.FromHandlePtr <TaskCompletionSource <IpcReq> >(userData);
            var ffiResult = Marshal.PtrToStructure <FfiResult>(result);

            tcs.SetResult(new IpcReqError(ffiResult.ErrorCode, ffiResult.Description, msg));
        }
Ejemplo n.º 2
0
        static void OnDecodeIpcReqShareMDataCb(IntPtr userData, uint reqId, IntPtr authReq, IntPtr metadataPtr, UIntPtr metadataLen)
        {
            var tcs                  = BindingUtils.FromHandlePtr <TaskCompletionSource <IpcReq> >(userData);
            var shareMdReq           = new ShareMDataReq(Marshal.PtrToStructure <ShareMDataReqNative>(authReq));
            var metadataResponseList = BindingUtils.CopyToObjectList <MetadataResponse>(metadataPtr, (int)metadataLen);

            tcs.SetResult(new ShareMDataIpcReq(reqId, shareMdReq, metadataResponseList));
        }
Ejemplo n.º 3
0
        // ReSharper disable once UnusedMember.Local
        static void OnIpcReqEncodeCb(IntPtr userData, IntPtr result, string msg)
        {
            var tcs       = BindingUtils.FromHandlePtr <TaskCompletionSource <string> >(userData);
            var ffiResult = Marshal.PtrToStructure <FfiResult>(result);

            if (ffiResult.ErrorCode != 0 && ffiResult.ErrorCode != -200)
            {
                Task.Run(() => { tcs.SetException(ffiResult.ToException()); });
                return;
            }

            Task.Run(() => { tcs.SetResult(msg); });
        }
Ejemplo n.º 4
0
        static void OnDecodeIpcReqContainersCb(IntPtr userData, uint reqId, IntPtr authReq)
        {
            var tcs = BindingUtils.FromHandlePtr <TaskCompletionSource <IpcReq> >(userData);

            tcs.SetResult(new ContainersIpcReq(reqId, new ContainersReq(Marshal.PtrToStructure <ContainersReqNative>(authReq))));
        }
Ejemplo n.º 5
0
        static void OnDecodeIpcReqUnregisteredCb(IntPtr userData, uint reqId, IntPtr extraData, UIntPtr size)
        {
            var tcs = BindingUtils.FromHandlePtr <TaskCompletionSource <IpcReq> >(userData);

            tcs.SetResult(new UnregisteredIpcReq(reqId, extraData, (ulong)size));
        }