public static Task <List <Tuple <List <byte>, List <byte>, ulong> > > MDataEntriesForEachAsync(ulong entH) { var tcs = new TaskCompletionSource <List <Tuple <List <byte>, List <byte>, ulong> > >(); var entries = new List <Tuple <List <byte>, List <byte>, ulong> >(); MDataEntriesForEachCb forEachCb = null; forEachCb = (pVoid, entryKeyPtr, entryKeyLen, entryValPtr, entryValLen, entryVersion) => { var entryKey = entryKeyPtr.ToList <byte>(entryKeyLen); var entryVal = entryValPtr.ToList <byte>(entryValLen); entries.Add(Tuple.Create(entryKey, entryVal, entryVersion)); }; CallbackManager.Register(forEachCb); MDataEntriesForEachResCb forEachResCb = null; forEachResCb = (ptr, result) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); CallbackManager.Unregister(forEachCb); CallbackManager.Unregister(forEachResCb); return; } tcs.SetResult(entries); CallbackManager.Unregister(forEachCb); CallbackManager.Unregister(forEachResCb); }; CallbackManager.Register(forEachResCb); NativeBindings.MDataEntriesForEach(Session.AppPtr, entH, forEachCb, Session.UserData, forEachResCb); return(tcs.Task); }
public void MDataEntriesForEach( IntPtr appPtr, ulong entriesHandle, MDataEntriesForEachCb forEachCallback, IntPtr self, MDataEntriesForEachResCb resultCallback) { MDataEntriesForEachNative(appPtr, entriesHandle, forEachCallback, self, resultCallback); }
public static extern void MDataEntriesForEachNative( IntPtr appPtr, ulong entriesHandle, MDataEntriesForEachCb forEachCallback, IntPtr self, MDataEntriesForEachResCb resultCallback);