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); }
public static extern void MDataInfoDeserialiseNative( IntPtr appPtr, IntPtr ptr, IntPtr len, IntPtr self, MDataInfoDeserialiseCb callback);
public void MDataInfoDeserialise(IntPtr appPtr, IntPtr ptr, IntPtr len, IntPtr self, MDataInfoDeserialiseCb callback) { MDataInfoDeserialiseNative(appPtr, ptr, len, self, callback); }