Beispiel #1
0
        public static Task <ulong> MDataInfoNewPublicAsync(List <byte> xorName, ulong typeTag)
        {
            var tcs = new TaskCompletionSource <ulong>();

            MDataInfoNewPublicCb callback = null;

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

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

            CallbackManager.Register(callback);

            var xorNamePtr = xorName.ToIntPtr();

            NativeBindings.MDataInfoNewPublic(Session.AppPtr, xorNamePtr, typeTag, Session.UserData, callback);

            Marshal.FreeHGlobal(xorNamePtr);

            return(tcs.Task);
        }
Beispiel #2
0
 public static extern void MDataInfoNewPublicNative(
     IntPtr appPtr,
     IntPtr xorNameArr,
     ulong typeTag,
     IntPtr self,
     MDataInfoNewPublicCb callback);
Beispiel #3
0
 public void MDataInfoNewPublic(IntPtr appPtr, IntPtr xorNameArr, ulong typeTag, IntPtr self, MDataInfoNewPublicCb callback)
 {
     MDataInfoNewPublicNative(appPtr, xorNameArr, typeTag, self, callback);
 }