internal EventDispatcher(EventDispatcher next, bool[] eventEnabled, EventListener listener) { m_Next = next; m_EventEnabled = eventEnabled; m_Listener = listener; }
// Helper used by code:EventListener.AddEventSource and code:EventListener.EventListener // when a listener gets attached to a eventSource internal void AddListener(EventListener listener) { lock (EventListener.EventListenersLock) { bool[] enabledArray = null; if (m_eventData != null) enabledArray = new bool[m_eventData.Length]; m_Dispatchers = new EventDispatcher(m_Dispatchers, enabledArray, listener); listener.OnEventSourceCreated(this); } }
internal EventCommandEventArgs(EventCommand command, IDictionary<string, string> arguments, EventSource eventSource, EventDispatcher dispatcher) { this.Command = command; this.Arguments = arguments; this.eventSource = eventSource; this.dispatcher = dispatcher; }
/// <summary> /// If 'value is 'true' then set the eventSource so that 'dispatcher' will recieve event with the eventId /// of 'eventId. If value is 'false' disable the event for that dispatcher. If 'eventId' is out of /// range return false, otherwise true. /// </summary> internal bool EnableEventForDispatcher(EventDispatcher dispatcher, int eventId, bool value) { if (dispatcher == null) { if (eventId >= m_eventData.Length) return false; if (m_provider != null) m_eventData[eventId].EnabledForETW = value; } else { if (eventId >= dispatcher.m_EventEnabled.Length) return false; dispatcher.m_EventEnabled[eventId] = value; if (value) m_eventData[eventId].EnabledForAnyListener = true; } return true; }