Пример #1
0
 public static extern void MDataEntryActionsInsertNative(
     IntPtr appPtr,
     ulong actionsHandle,
     IntPtr keyPtr,
     IntPtr keyLen,
     IntPtr valuePtr,
     IntPtr valueLen,
     IntPtr self,
     MDataEntryActionsInsertCb callback);
Пример #2
0
 public void MDataEntryActionsInsert(
     IntPtr appPtr,
     ulong actionsHandle,
     IntPtr keyPtr,
     IntPtr keyLen,
     IntPtr valuePtr,
     IntPtr valueLen,
     IntPtr self,
     MDataEntryActionsInsertCb callback)
 {
     MDataEntryActionsInsertNative(appPtr, actionsHandle, keyPtr, keyLen, valuePtr, valueLen, self, callback);
 }
Пример #3
0
        public static Task MDataEntryActionsInsertAsync(ulong entryActionsH, List <byte> entKey, List <byte> entVal)
        {
            var tcs = new TaskCompletionSource <object>();

            MDataEntryActionsInsertCb callback = null;

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

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

            CallbackManager.Register(callback);

            var entKeyPtr = entKey.ToIntPtr();
            var entValPtr = entVal.ToIntPtr();

            NativeBindings.MDataEntryActionsInsert(
                Session.AppPtr,
                entryActionsH,
                entKeyPtr,
                (IntPtr)entKey.Count,
                entValPtr,
                (IntPtr)entVal.Count,
                Session.UserData,
                callback);

            Marshal.FreeHGlobal(entKeyPtr);
            Marshal.FreeHGlobal(entValPtr);

            return(tcs.Task);
        }