private bool ShouldRegisterCallback(long eventTypeId, Delegate callback, CallbackPhase phase) { bool result; if (callback == null) { result = false; } else { EventCallbackList callbackListForReading = this.GetCallbackListForReading(); result = (callbackListForReading == null || !callbackListForReading.Contains(eventTypeId, callback, phase)); } return(result); }
bool ShouldRegisterCallback(long eventTypeId, Delegate callback, CallbackPhase phase) { if (callback == null) { return(false); } EventCallbackList callbackList = GetCallbackListForReading(); if (callbackList != null) { return(!callbackList.Contains(eventTypeId, callback, phase)); } return(true); }
public void RegisterCallback <TEventType>(EventCallback <TEventType> callback, TrickleDown useTrickleDown = TrickleDown.NoTrickleDown) where TEventType : EventBase <TEventType>, new() { if (callback == null) { throw new ArgumentException("callback parameter is null"); } long eventTypeId = EventBase <TEventType> .TypeId(); var callbackPhase = useTrickleDown == TrickleDown.TrickleDown ? CallbackPhase.TrickleDownAndTarget : CallbackPhase.TargetAndBubbleUp; EventCallbackList callbackList = GetCallbackListForReading(); if (callbackList == null || callbackList.Contains(eventTypeId, callback, callbackPhase) == false) { callbackList = GetCallbackListForWriting(); callbackList.Add(new EventCallbackFunctor <TEventType>(callback, callbackPhase)); } }