예제 #1
0
        public void WidgetViewSignalDisconnect()
        {
            tlog.Debug(tag, $"WidgetViewSignalDisconnect START");

            var testingTarget = new WidgetViewSignal();

            Assert.IsNotNull(testingTarget, "Should be not null!");
            Assert.IsInstanceOf <WidgetViewSignal>(testingTarget, "Should be an Instance of WidgetViewSignal!");

            SignalCallback signalCallback = new SignalCallback(MyDelegate);

            try
            {
                testingTarget.Connect(signalCallback);
                Assert.AreEqual(1, testingTarget.GetConnectionCount(), "Should be one here!");

                testingTarget.Disconnect(signalCallback);
                Assert.AreEqual(0, testingTarget.GetConnectionCount(), "Should be zero here!");
            }
            catch (Exception e)
            {
                Assert.Fail("Caught Exception" + e.ToString());
            }

            testingTarget.Dispose();
            tlog.Debug(tag, $"WidgetViewSignalDisconnect END (OK)");
        }
예제 #2
0
 public void AddHandler(SignalCallback pCallback)
 {
     if (!this.m_HandlerList.Contains(pCallback))
     {
         this.m_HandlerList.Add(pCallback);
     }
 }
예제 #3
0
 private SignalCallback AddUnique(SignalCallback listeners, SignalCallback callback)
 {
     if (listeners == null || !listeners.GetInvocationList().Contains(callback))
     {
         listeners = (SignalCallback)Delegate.Combine(listeners, callback);
     }
     return(listeners);
 }
예제 #4
0
 public void RemovelListener(SignalCallback callback)
 {
     if (this.Listener != null)
     {
         Listener -= callback;
         numListeners--;
     }
 }
    public void SubscribeSignal(string s, SignalCallback c)
    {
        if (!SignalList.ContainsKey(s))
        {
            SignalList.Add(s, new List <SignalCallback>());
        }

        SignalList[s].Add(c);
    }
예제 #6
0
 public BehaviorCheckListenerBridge(System.IntPtr _helperFactory, BehaviorCheckListener _listener)
 {
     listener      = _listener;
     helperFactory = _helperFactory;
     onResultInPositiveCallback = () => {
         listener.OnResultInPositive();
     };
     ImplPtr = NewBehaviorCheckListener(helperFactory, onResultInPositiveCallback);
 }
예제 #7
0
 public BehaviorListenerBridge(System.IntPtr _helperFactory, BehaviorListener _listener)
 {
     listener         = _listener;
     helperFactory    = _helperFactory;
     onFinishCallback = () => {
         listener.OnFinish();
     };
     ImplPtr = NewBehaviorListener(helperFactory, onFinishCallback);
 }
예제 #8
0
 /// <summary>
 /// Initializes a new ad.
 /// </summary>
 /// <param name="type">Type of the ad.</param>
 /// <param name="isRewarded">If set to <c>true</c> is rewarded.</param>
 public iOSCardboardAd(AdType type, bool isRewarded = false)
 {
     State = AdState.Initializing;
     _adLookup.Add(_counter, this);
     _onAdFinished   = new SignalCallback(OnAdFinished);
     _onError        = new SignalCallback(OnError);
     _onLoadFinished = new SignalCallback(OnLoadFinished);
     _nativeObject   = _iOSCardboardAdCtrIntern(_counter, _onAdFinished, _onError, _onLoadFinished, (int)type, isRewarded);           //_iOSCardboardAdCtrIntern(ToIntPtr(this), (int)type, isRewarded);
     _counter++;
 }
예제 #9
0
 /// <summary>
 /// 反注册一个回调函数,该回调函数在指定信号触发时将不再被调用
 /// </summary>
 /// <param name="_signal_id">信号编号,详细列表请参见SingalId的枚举定义</param>
 /// <param name="_callback">信号被触发时将被调用的函数</param>
 public static void Unregister(SignalId _signal_id, SignalCallback _callback)
 {
     if (m_signal_callbacks.ContainsKey(_signal_id))
     {
         m_signal_callbacks[_signal_id] -= _callback;
         if (null == m_signal_callbacks[_signal_id])
         {
             m_signal_callbacks.Remove(_signal_id);
         }
     }
 }
예제 #10
0
        public IEnumerator Invoke(T signalParams)
        {
            SignalCallback listener = this.Listener;

            yield return((listener != null) ? listener(signalParams) : null);

            SignalCallback onceListener = this.OnceListener;

            yield return((onceListener != null) ? onceListener(signalParams) : null);

            ClearOnceListeners();
        }
예제 #11
0
 /// <summary>
 /// 注册一个回调函数,该回调函数将在指定信号触发时被调用
 /// </summary>
 /// <param name="_signal_id">信号编号,详细列表请参见SingalId的枚举定义</param>
 /// <param name="_callback">信号被触发时将被调用的函数</param>
 /// <returns></returns>
 public static bool Register(SignalId _signal_id, SignalCallback _callback)
 {
     if (m_signal_callbacks.ContainsKey(_signal_id))
     {
         m_signal_callbacks[_signal_id] += _callback;
     }
     else
     {
         m_signal_callbacks.Add(_signal_id, _callback);
     }
     return(true);
 }
예제 #12
0
 public BehaviorCheckTriggerBridge(System.IntPtr _helperFactory, BehaviorCheckTrigger _controller)
 {
     controller    = _controller;
     helperFactory = _helperFactory;
     beginBehaviorCheckCallback = (bhvrChkListener) => {
         controller.BeginBehavior(new NativeBehaviorCheckListener(bhvrChkListener));
     };
     ImplPtr = NewBehaviorCheckTrigger(helperFactory,
                                       beginBehaviorCheckCallback,
                                       stopBehaviorCallback     = () => { },
                                       continueBehaviorCallback = () => { }
                                       );
 }
예제 #13
0
    /// <summary>
    /// 添加一个信号接收器
    /// </summary>
    /// <param name="pMsgID">消息ID</param>
    /// <param name="pCallback">接受到消息的回调</param>
    public void AddHandler(SignalID nSignalID, SignalCallback pCallback)
    {
        if (pCallback == null)
        {
            return;
        }

        if (this.m_HandlerMap.ContainsKey(nSignalID))
        {
            this.m_HandlerMap[nSignalID].AddHandler(pCallback);
        }
        else
        {
            var mhc = new _SignalHandlerCollection();
            mhc.AddHandler(pCallback);
            this.m_HandlerMap.Add(nSignalID, mhc);
        }
    }
예제 #14
0
    /// <summary>
    /// 移除指定的信号接收器
    /// </summary>
    /// <param name="nSignalID">消息ID</param>
    /// <param name="pCallback">添加时的回调</param>
    public void RemoveHandler(SignalID nSignalID, SignalCallback pCallback)
    {
        if (pCallback == null)
        {
            return;
        }

        if (this.m_HandlerMap.ContainsKey(nSignalID))
        {
            var mhc = this.m_HandlerMap[nSignalID];
            mhc.RemoveHandler(pCallback);

            if (mhc.Count == 0)
            {
                this.m_HandlerMap.Remove(nSignalID);
            }
        }
    }
예제 #15
0
 public void RemoveHandler(SignalCallback pCallback)
 {
     this.m_HandlerList.Remove(pCallback);
 }
예제 #16
0
 private extern static System.IntPtr NewBehaviorListener(
     System.IntPtr behaviorFactory,
     SignalCallback onFinishCallback
     );
예제 #17
0
 private static extern void Register(SignalCallback onSignal);
예제 #18
0
 private extern static System.IntPtr NewBehaviorCheckListener(
     System.IntPtr behaviorFactory,
     SignalCallback onResultInPositiveCallback
     );
예제 #19
0
 public void AddCallback(int width, int height, SignalCallback _callback)
 {
     this.m_iWidth  = width;
     this.m_iHeight = height;
     this._callback = _callback;
 }
예제 #20
0
 /// <summary>
 /// 设置状态设置监听
 /// </summary>
 /// <param name="_callback">Callback.</param>
 public void SetStatusListener(SignalCallback _callback)
 {
     this._cbSetStatus = _callback;
 }
예제 #21
0
 private extern static System.IntPtr NewBehaviorCheckTrigger(
     System.IntPtr behaviorFactory,
     SinglePtrCallback beginBehaviorCallback,
     SignalCallback stopCallback,
     SignalCallback continueCallback
     );
예제 #22
0
 public void AddListener(SignalCallback callback)
 {
     this.Listener = AddUnique(this.Listener, callback);
     numListeners++;
 }
예제 #23
0
 public void AddOnce(SignalCallback callback)
 {
     this.OnceListener = AddUnique(this.OnceListener, callback);
     numOnceListeners++;
 }
예제 #24
0
 public void AddCallback(SignalCallback _callback)
 {
     this._callback = _callback;
 }
예제 #25
0
 private static extern IntPtr _iOSCardboardAdCtrIntern(int adId, SignalCallback onAdFinished, SignalCallback onError, SignalCallback onLoadFinished, int type, bool isRewarded);