public static Task <List <(List <byte>, List <byte>, ulong)> > ForEachAsync(NativeHandle entH) { var tcs = new TaskCompletionSource <List <(List <byte>, List <byte>, ulong)> >(); var entries = new List <(List <byte>, List <byte>, ulong)>(); MDataEntriesForEachCb forEachCb = (_, entryKeyPtr, entryKeyLen, entryValPtr, entryValLen, entryVersion) => { var entryKey = entryKeyPtr.ToList <byte>(entryKeyLen); var entryVal = entryValPtr.ToList <byte>(entryValLen); entries.Add((entryKey, entryVal, entryVersion)); }; ListBasedResultCb forEachResCb = (_, result) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); return; } tcs.SetResult(entries); }; AppBindings.MDataEntriesForEach(Session.AppPtr, entH, forEachCb, forEachResCb); return(tcs.Task); }
public static extern void DecodeIpcMessageNative( string encodedReq, IntPtr self, DecodeAuthCb authCb, DecodeUnregCb unregCb, DecodeContCb contCb, DecodeShareMDataCb shareMDataCb, DecodeRevokedCb revokedCb, ListBasedResultCb errorCb);
public void MDataEntriesForEach( IntPtr appPtr, ulong entriesHandle, MDataEntriesForEachCb forEachCallback, ListBasedResultCb resultCallback) { var cbs = new List <object> { forEachCallback, resultCallback }; MDataEntriesForEachNative(appPtr, entriesHandle, cbs.ToHandlePtr(), OnMDataEntriesForEachCb, OnListBasedResultCb); }
public void DecodeIpcMessage( string encodedReq, DecodeAuthCb authCb, DecodeUnregCb unregCb, DecodeContCb contCb, DecodeShareMDataCb shareMDataCb, DecodeRevokedCb revokedCb, ListBasedResultCb errorCb) { var cbs = new List <object> { authCb, unregCb, contCb, shareMDataCb, revokedCb, errorCb }; DecodeIpcMessageNative( encodedReq, cbs.ToHandlePtr(), OnDecodeAuthCb, OnDecodeUnregCb, OnDecodeContCb, OnDecodeShareMDataCb, OnDecodeRevokedCb, OnListBasedResultCb); }
public static extern void MDataEntriesForEachNative( IntPtr appPtr, ulong entriesHandle, IntPtr self, MDataEntriesForEachCb forEachCallback, ListBasedResultCb resultCallback);