view Implab/Diagnostics/TraceEvent.cs @ 209:a867536c68fc v2

Bound promise to CancellationToken Added new states to ExecutionSate enum. Added Safe.Guard() method to handle cleanup of the result of the promise
author cin
date Wed, 16 Nov 2016 03:06:08 +0300
parents ea485487a424
children cc1baf7c8bd9
line wrap: on
line source

using System;

namespace Implab.Diagnostics {
    public class TraceEvent {
        public string Message {
            get;
            private set;
        }

        public TraceEventType EventType {
            get;
            private set;
        }

        /// <summary>
        /// The logical operation this event belongs to.
        /// </summary>
        public LogicalOperation Operation {
            get;
            private set;
        }

        /// <summary>
        /// Gets the time offset in milliseconds from the start of the operation, if the operation is not specified the value is zero.
        /// </summary>
        public int OperationTime {
            get;
            private set;
        }

        public TraceEvent(LogicalOperation operation, TraceEventType type, string message) {
            EventType = type;
            Message = message;
            Operation = operation;
            if (operation != null)
                OperationTime = operation.Duration;
        }

        public override string ToString() {
            return Message;
        }

        public static TraceEvent Create(LogicalOperation operation, TraceEventType type, string format, params object[] args) {
            return new TraceEvent(operation, type, format == null ? String.Empty : String.Format(format, args));
        }
    }
}