public EventTrackingCache(string friendlyName, DateTime?startTime, long?counter, EventTrackingMode mode)
 {
     FriendlyName = friendlyName;
     StartTime    = startTime;
     Counter      = counter;
     Mode         = mode;
 }
        public void StartTrackingEvent(Guid eventReferenceName, string eventFriendlyName, EventTrackingMode trackingMode)
        {
            DateTime?startTime = null;
            long?    counter   = null;

            switch (trackingMode)
            {
            case EventTrackingMode.Counter:
                counter = 0;
                break;

            case EventTrackingMode.ElapseTime:
                startTime = DateTime.Now;
                break;

            case EventTrackingMode.CounterAndElapseTime:
                counter   = 0;
                startTime = DateTime.Now;
                break;

            case EventTrackingMode.NotDefined:
            default:
                return;
            }

            lock (m_eventTrackCacheLock)
            {
                if (m_eventTrackCache.ContainsKey(eventReferenceName))
                {
                    throw new InvalidOperationException(
                              string.Format("Cannot start tracking the same event \"{0}\" twice.", eventReferenceName));
                }

                m_eventTrackCache.Add(eventReferenceName, new EventTrackingCache(eventFriendlyName, startTime, counter, trackingMode));
            }
        }
Пример #3
0
 public static void setEventTrackingMode(EventTrackingMode eventTrackingMode)
 {
     SetEventTrackingModeInternal(eventTrackingMode.ToString());
 }