Пример #1
0
        public static Task <ulong> MDataInfoDeserialiseAsync(List <byte> serialisedData)
        {
            var tcs = new TaskCompletionSource <ulong>();
            MDataInfoDeserialiseCb callback = null;

            callback = (pVoid, result, mdataInfoH) => {
                if (result.ErrorCode != 0)
                {
                    tcs.SetException(result.ToException());
                    CallbackManager.Unregister(callback);
                    return;
                }

                tcs.SetResult(mdataInfoH);
                CallbackManager.Unregister(callback);
            };

            CallbackManager.Register(callback);

            var serialisedDataPtr = serialisedData.ToIntPtr();

            NativeBindings.MDataInfoDeserialise(Session.AppPtr, serialisedDataPtr, (IntPtr)serialisedData.Count, Session.UserData, callback);

            Marshal.FreeHGlobal(serialisedDataPtr);

            return(tcs.Task);
        }
Пример #2
0
 public static extern void MDataInfoDeserialiseNative(
     IntPtr appPtr,
     IntPtr ptr,
     IntPtr len,
     IntPtr self,
     MDataInfoDeserialiseCb callback);
Пример #3
0
 public void MDataInfoDeserialise(IntPtr appPtr, IntPtr ptr, IntPtr len, IntPtr self, MDataInfoDeserialiseCb callback)
 {
     MDataInfoDeserialiseNative(appPtr, ptr, len, self, callback);
 }