Example #1
0
 public static extern void AppRegisteredNative(
     string appId,
     IntPtr ffiAuthGrantedPtr,
     IntPtr networkUserData,
     IntPtr userData,
     NetObsCallback netObsCb,
     AppRegisteredCallback appRegCb);
Example #2
0
        public static Task <bool> AppRegisteredAsync(string appId, AuthGranted authGranted)
        {
            return(Task.Run(
                       () => {
                var tcs = new TaskCompletionSource <bool>();
                var authGrantedFfi = new AuthGrantedFfi {
                    AccessContainer = authGranted.AccessContainer,
                    AppKeys = authGranted.AppKeys,
                    BootStrapConfigPtr = authGranted.BootStrapConfig.ToIntPtr(),
                    BootStrapConfigLen = (IntPtr)authGranted.BootStrapConfig.Count
                };
                var authGrantedFfiPtr = CommonUtils.Helpers.StructToPtr(authGrantedFfi);

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

                    AppPtr = appPtr;
                    tcs.SetResult(true);
                    CallbackManager.Unregister(callback);
                };

                CallbackManager.Register(callback);
                NativeBindings.AppRegistered(appId, authGrantedFfiPtr, IntPtr.Zero, UserData, NetObs, callback);
                Marshal.FreeHGlobal(authGrantedFfi.BootStrapConfigPtr);
                Marshal.FreeHGlobal(authGrantedFfiPtr);

                return tcs.Task;
            }));
        }
Example #3
0
 public void AppRegistered(
     string appId,
     IntPtr ffiAuthGrantedPtr,
     IntPtr networkUserData,
     IntPtr userData,
     NetObsCallback netObsCb,
     AppRegisteredCallback appRegCb)
 {
     AppRegisteredNative(appId, ffiAuthGrantedPtr, networkUserData, userData, netObsCb, appRegCb);
 }