예제 #1
0
        internal static uint AddMessageCallback(IMessageHandlerScheduler scheduler, bool isSingleUse, Action <string> messageCallback)
        {
            if (!_initialized)
            {
                PInvoke.AppleAuth_IOS_SetupNativeMessageHandlerCallback(NativeMessageHandlerCallback);
                _initialized = true;
            }

            if (messageCallback == null)
            {
                throw new Exception("Can't add a null Message Callback.");
            }

            var usedCallbackId = _callbackId;

            _callbackId += 1;
            if (_callbackId >= MaxCallbackId)
            {
                _callbackId = InitialCallbackId;
            }

            var callbackEntry = new MessageCallbackEntry(messageCallback, scheduler, isSingleUse);

            CallbackDictionary.Add(usedCallbackId, callbackEntry);
            return(usedCallbackId);
        }
        internal static uint AddMessageCallback(IMessageHandlerScheduler scheduler, Action <string> messageCallback)
        {
            if (!_initialized)
            {
                PInvoke.AppleAuth_IOS_SetupNativeMessageHandlerCallback(NativeMessageHandlerCallback);
                _initialized = true;
            }

            if (messageCallback == null)
            {
                throw new Exception("Can't add a null Message Callback.");
            }

            var usedCallbackId = _callbackId;

            _callbackId += 1;
            if (CallbackDictionary.ContainsKey(usedCallbackId))
            {
                throw new Exception("A Message Callback with the same ID " + usedCallbackId + " already exists.");
            }

            var callbackEntry = new MessageCallbackEntry(messageCallback, scheduler);

            CallbackDictionary.Add(usedCallbackId, callbackEntry);
            return(usedCallbackId);
        }
예제 #3
0
            public static uint AddMessageCallback(bool isSingleUse, Action <string> messageCallback)
            {
                if (!_initialized)
                {
                    PInvoke.AppleAuth_IOS_SetupNativeMessageHandlerCallback(PInvoke.NativeMessageHandlerCallback);
                    _initialized = true;
                }

                if (messageCallback == null)
                {
                    throw new Exception("Can't add a null Message Callback.");
                }

                var usedCallbackId = default(uint);

                lock (SyncLock)
                {
                    usedCallbackId = _callbackId;
                    _callbackId   += 1;
                    if (_callbackId >= MaxCallbackId)
                    {
                        _callbackId = InitialCallbackId;
                    }

                    var callbackEntry = new Entry(isSingleUse, messageCallback);
                    CallbackDictionary.Add(usedCallbackId, callbackEntry);
                }
                return(usedCallbackId);
            }