コード例 #1
0
        // PUBLIC


        // PUBLIC STATIC

        // PRIVATE

        // PUBLIC

        // PUBLIC STATIC

        // PRIVATE

        // PRIVATE STATIC

        //--------------------------------------
        //  Methods
        //--------------------------------------
        ///<summary>
        ///	 Constructor
        ///</summary>
        public EventListenerData(object aEventListener, string aEventName_string, EventDelegate aEventDelegate, EventDispatcherAddMode aEventListeningMode)
        {
            _eventListener      = aEventListener;
            _eventName_string   = aEventName_string;
            _eventDelegate      = aEventDelegate;
            _eventListeningMode = aEventListeningMode;
        }
コード例 #2
0
ファイル: EventDispatcher.cs プロジェクト: pikaqiufk/Client
        /// <summary>
        ///     Adds the event listener.
        /// </summary>
        /// <returns>
        ///     The event listener.
        /// </returns>
        /// <param name='aEventNameString'>
        ///     If set to <c>true</c> a event type_string.
        /// </param>
        /// <param name='aEventDelegate'>
        ///     If set to <c>true</c> a event delegate.
        /// </param>
        /// <param name='aEventDispatcherAddMode'>
        ///     If set to <c>true</c> event listening mode.
        /// </param>
        public bool AddEventListener(string aEventNameString,
                                     EventDelegate aEventDelegate,
                                     EventDispatcherAddMode aEventDispatcherAddMode)
        {
            //
            var wasSuccessfulBoolean = false;

            //
            var aIEventListener = _getArgumentsCallee(aEventDelegate);

            //
            if (aIEventListener != null && aEventNameString != null)
            {
                //	OUTER
                var keyForOuterHashTableString = _getKeyForOuterHashTable(aEventNameString);

                Action act = () =>
                {
                    if (!mEventListenerDatasHashtable.ContainsKey(keyForOuterHashTableString))
                    {
                        mEventListenerDatasHashtable.Add(keyForOuterHashTableString,
                                                         new Dictionary <string, EventListenerData>());
                    }

                    //	INNER
                    var innerHashtable    = mEventListenerDatasHashtable[keyForOuterHashTableString];
                    var eventListenerData = new EventListenerData(aIEventListener, aEventNameString,
                                                                  aEventDelegate, aEventDispatcherAddMode);
                    //
                    var keyForInnerHashTableString = _getKeyForInnerHashTable(eventListenerData);
                    if (innerHashtable != null && innerHashtable.ContainsKey(keyForInnerHashTableString))
                    {
                        //THIS SHOULD *NEVER* HAPPEN - REMOVE AFTER TESTED WELL
                        Logger.Info("TODO (FIX THIS): Event Manager: Listener: " + keyForInnerHashTableString +
                                    " is already in list for event: " + keyForOuterHashTableString);
                    }
                    else
                    {
                        //	ADD
                        if (innerHashtable != null)
                        {
                            innerHashtable.Add(keyForInnerHashTableString, eventListenerData);
                        }
                        wasSuccessfulBoolean = true;
                        //Logger.Info ("	ADDED AT: " + keyForInnerHashTable_string + " = " +  eventListenerData);
                    }
                };

                if (keyForOuterHashTableString == mCurrentEventName)
                {
                    mAppendAction.Enqueue(act);
                }
                else
                {
                    act();
                }
            }
            return(wasSuccessfulBoolean);
        }
コード例 #3
0
 public EventListenerData(object aEventListener,
                          string aEventNameString,
                          EventDelegate aEventDelegate,
                          EventDispatcherAddMode aEventListeningMode)
 {
     EventListener      = aEventListener;
     EventName          = aEventNameString;
     EventDelegate      = aEventDelegate;
     EventListeningMode = aEventListeningMode;
     Enable             = true;
 }
コード例 #4
0
		// PUBLIC
		
		
		// PUBLIC STATIC
		
		// PRIVATE
		
		// PUBLIC
		
		// PUBLIC STATIC
		
		// PRIVATE
		
		// PRIVATE STATIC
		
		//--------------------------------------
		//  Methods
		//--------------------------------------
		///<summary>
		///	 Constructor
		///</summary>
		public EventListenerData (object aEventListener, string aEventName_string, EventDelegate aEventDelegate, EventDispatcherAddMode aEventListeningMode )
		{
			_eventListener 		= aEventListener;
			_eventName_string 	= aEventName_string;
			_eventDelegate		= aEventDelegate;
			_eventListeningMode	= aEventListeningMode;
			
			
			
		}
コード例 #5
0
        /// <summary>
        /// Adds the event listener.
        /// </summary>
        /// <returns>
        /// The event listener.
        /// </returns>
        /// <param name='aEventName_string'>
        /// If set to <c>true</c> a event type_string.
        /// </param>
        /// <param name='aEventDelegate'>
        /// If set to <c>true</c> a event delegate.
        /// </param>
        /// <param name='aEventDispatcherAddMode'>
        /// If set to <c>true</c> event listening mode.
        /// </param>
        public bool addEventListener(string aEventName_string, EventDelegate aEventDelegate, EventDispatcherAddMode aEventDispatcherAddMode)
        {
            //
            bool wasSuccessful_boolean = false;

            //
            object aIEventListener = _getArgumentsCallee(aEventDelegate);

            //
            if (aIEventListener != null && aEventName_string != null)
            {
                //	OUTER
                string keyForOuterHashTable_string = _getKeyForOuterHashTable(aEventName_string);
                if (!_eventListenerDatas_hashtable.ContainsKey(keyForOuterHashTable_string))
                {
                    _eventListenerDatas_hashtable.Add(keyForOuterHashTable_string, new Hashtable());
                }

                //	INNER
                Hashtable         inner_hashtable   = _eventListenerDatas_hashtable[keyForOuterHashTable_string] as Hashtable;
                EventListenerData eventListenerData = new EventListenerData(aIEventListener, aEventName_string, aEventDelegate, aEventDispatcherAddMode);
                //
                string keyForInnerHashTable_string = _getKeyForInnerHashTable(eventListenerData);
                if (inner_hashtable.Contains(keyForInnerHashTable_string))
                {
                    //THIS SHOULD *NEVER* HAPPEN - REMOVE AFTER TESTED WELL
                    Debug.Log("Event Manager: Listener: " + keyForInnerHashTable_string + " is already in list for event: " + keyForOuterHashTable_string);
                    Debug.Log("Event Manager: Listener: " + keyForInnerHashTable_string + " is already in list for event: " + keyForOuterHashTable_string);
                    Debug.Log("Event Manager: Listener: " + keyForInnerHashTable_string + " is already in list for event: " + keyForOuterHashTable_string);
                }
                else
                {
                    //	ADD
                    inner_hashtable.Add(keyForInnerHashTable_string, eventListenerData);
                    wasSuccessful_boolean = true;
                    //Debug.Log ("	ADDED AT: " + keyForInnerHashTable_string + " = " +  eventListenerData);
                }
            }
            return(wasSuccessful_boolean);
        }
コード例 #6
0
		/// <summary>
		/// Adds the event listener.
		/// </summary>
		/// <returns>
		/// The event listener.
		/// </returns>
		/// <param name='aEventName_string'>
		/// If set to <c>true</c> a event type_string.
		/// </param>
		/// <param name='aEventDelegate'>
		/// If set to <c>true</c> a event delegate.
		/// </param>
		/// <param name='aEventDispatcherAddMode'>
		/// If set to <c>true</c> event listening mode.
		/// </param>
	    public bool addEventListener(string aEventName_string, EventDelegate aEventDelegate, EventDispatcherAddMode aEventDispatcherAddMode)
	    {
			//
			bool wasSuccessful_boolean = false;
			
			//
			object aIEventListener = _getArgumentsCallee(aEventDelegate);			
			
			//
	        if (aIEventListener != null && aEventName_string != null) {
				
				//	OUTER
				string keyForOuterHashTable_string = _getKeyForOuterHashTable (aEventName_string);
		        if (!_eventListenerDatas_hashtable.ContainsKey(keyForOuterHashTable_string) ) {
		            _eventListenerDatas_hashtable.Add(keyForOuterHashTable_string, new Hashtable());
				}
		 
				//	INNER
		        Hashtable inner_hashtable = _eventListenerDatas_hashtable[keyForOuterHashTable_string] as Hashtable;
				EventListenerData eventListenerData = new EventListenerData (aIEventListener, aEventName_string, aEventDelegate, aEventDispatcherAddMode);
				//
				string keyForInnerHashTable_string = _getKeyForInnerHashTable (eventListenerData);
		        if (inner_hashtable.Contains(keyForInnerHashTable_string)) {
					
					//THIS SHOULD *NEVER* HAPPEN - REMOVE AFTER TESTED WELL
		            Debug.Log("TODO (FIX THIS): Event Manager: Listener: " + keyForInnerHashTable_string + " is already in list for event: " + keyForOuterHashTable_string);

				} else {
		 
					//	ADD
		        	inner_hashtable.Add(keyForInnerHashTable_string, eventListenerData);
					wasSuccessful_boolean = true;
					//Debug.Log ("	ADDED AT: " + keyForInnerHashTable_string + " = " +  eventListenerData);
				}
				
			}
	        return wasSuccessful_boolean;
	    }
コード例 #7
0
 public bool addEventListener(string aEventName_string, EventDelegate aEventDelegate, EventDispatcherAddMode aEventDispatcherAddMode)
 {
     return(_eventDispatcher.addEventListener(aEventName_string, aEventDelegate, aEventDispatcherAddMode));
 }