Пример #1
0
        public ExternalTraceEventParser(TraceEventSource source)
            : base(source)
        {
            if (source == null)
                return;

            m_state = (ExternalTraceEventParserState)StateObject;
            if (m_state == null)
            {
                StateObject = m_state = new ExternalTraceEventParserState();
                m_state.m_templates = new List<DynamicTraceEventData>();
                this.source.RegisterUnhandledEvent(delegate(TraceEvent unknown)
                {
                    var ret = TryLookup(unknown);
                    if (ret != null)
                    {
                        RegisterTemplate(ret);
                        ret.source = unknown.source;
                        ret.eventRecord = unknown.eventRecord;
                        ret.userData = unknown.userData;
                        return ret;
                    }
                    return unknown;
                });
            }
            else if (m_allCallbackCalled)
            {
                foreach (var template in m_state.m_templates)
                {
                    this.source.RegisterEventTemplate(template);
                    template.Action += m_allCallback;
                }
            }
        }
        public ExternalTraceEventParser(TraceEventSource source)
            : base(source)
        {
            if (source == null)
                return;

            m_state = (ExternalTraceEventParserState)StateObject;
            if (m_state == null)
            {
                StateObject = m_state = new ExternalTraceEventParserState();
                m_state.m_templates = new List<DynamicTraceEventData>();
                this.source.RegisterUnhandledEvent(delegate(TraceEvent unknown)
                {
                    var ret = TryLookup(unknown);
                    if (ret != null)
                    {
                        RegisterTemplate(ret);
                        ret.source = unknown.source;
                        ret.eventRecord = unknown.eventRecord;
                        ret.userData = unknown.userData;
                        return ret;
                    }
                    return unknown;
                });
            }
            else if (m_allCallbackCalled)
            {
                foreach (var template in m_state.m_templates)
                {
                    this.source.RegisterEventTemplate(template);
                    template.Action += m_allCallback;
                }
            }
        }