Ejemplo n.º 1
0
 public TraceMessage(TraceTypeEnum tracrType, string message, string?filterText = null)
 {
     TraceType  = tracrType;
     Created    = DateTime.Now;
     Message    = message;
     FilterText = filterText;
 }
Ejemplo n.º 2
0
        private static void tracePerThread(TraceTypeEnum traceType, bool isNewLine, string?filterText, string message, params object[] args)
        {
            if (previousTraceType != traceType)
            {
                //queue previous message having different type
                if (threadMessageString != null)
                {
                    enqueueMessage(previousTraceType, filterText, ref threadMessageString); //sets threadMessageString=null
                }
                previousTraceType = traceType;
            }

            //concatenate message in threadMessageString
            if (args == null || args.Length == 0)
            {
                threadMessageString += message;
            }
            else
            {
                try {
                    threadMessageString += string.Format(message, args);
                } catch (Exception) {
                    //message is not properly formatted, might contain '{'. Try without args
                    threadMessageString += message;
                }
            }

            if (isNewLine)
            {
                //queue complete, queue now
                enqueueMessage(previousTraceType, filterText, ref threadMessageString); //sets threadMessageString=null
            }
        }
Ejemplo n.º 3
0
        public static void Write(TraceTypeEnum tarcetyoe, string logMessage)
        {
            switch (tarcetyoe)
            {
            case TraceTypeEnum.empty:
                Write(" ", logMessage);
                break;

            case TraceTypeEnum.trace:
                Write("trace", logMessage);
                break;

            case TraceTypeEnum.warning:
                Write("warning", logMessage);
                break;

            case TraceTypeEnum.error:
                Write("error", logMessage);
                break;

            case TraceTypeEnum.other:
                Write("other", logMessage);
                break;

            default:
                break;
            }
        }
Ejemplo n.º 4
0
        private static void enqueueMessage(TraceTypeEnum traceType, string?filterText, ref string?threadMessageBuffer)
        {
      #if RealTimeTraceing
            RealTimeTracer.Trace("enqueueMessage(): start " + traceType.ShortString() + ": " + threadMessageBuffer);
      #endif
            TraceMessage message = new TraceMessage(traceType, threadMessageBuffer !, filterText);
            threadMessageBuffer = null;

            //break in debugger if needed
            if (Debugger.IsAttached)
            {
                if ((traceType == TraceTypeEnum.Warning && IsBreakOnWarning) ||
                    (traceType == TraceTypeEnum.Error && IsBreakOnError) ||
                    (traceType == TraceTypeEnum.Exception && IsBreakOnException))
                {
                    Debug.WriteLine(traceType + ": " + message);
                    Debugger.Break();
                }
            }

      #if RealTimeTraceing
            RealTimeTracer.Trace("enqueueMessage(): lock messagesQueue");
      #endif
            lock (messagesQueue){
        #if RealTimeTraceing
                RealTimeTracer.Trace("enqueueMessage(): locked messagesQueue");
        #endif
                if (messagesQueue.Count >= MaxMessageQueue - 1) //leave 1 space empty for overflow error message
                {
          #if RealTimeTraceing
                    RealTimeTracer.Trace("enqueueMessage(): messagesQueue overflow (" + messagesQueue.Count + " messages)");
          #endif
                    if (!isMessagesQueueOverflow)
                    {
                        isMessagesQueueOverflow = true;
                        messagesQueue.Enqueue(new TraceMessage(TraceTypeEnum.Error, "Tracer.enqueueMessage(): MessagesQueue overflow (" + messagesQueue.Count + " messages) for:" +
                                                               Environment.NewLine + message.ToString()));
                    }
                }
                else
                {
                    isMessagesQueueOverflow = false;
                    messagesQueue.Enqueue(message);
          #if RealTimeTraceing
                    RealTimeTracer.Trace("enqueueMessage(): message added to messagesQueue");
          #endif
                }
                //Monitor.Pulse(messagesQueue);
        #if RealTimeTraceing
                RealTimeTracer.Trace("enqueueMessage(): messagesQueue pulsed, release lock");
        #endif
            }
      #if RealTimeTraceing
            RealTimeTracer.Trace("enqueueMessage(): messagesQueue lock released, end");
      #endif
        }
Ejemplo n.º 5
0
        public static string ShortString(this TraceTypeEnum tracerSource)
        {
            switch (tracerSource)
            {
            case TraceTypeEnum.Trace:
                return("Trc");

            case TraceTypeEnum.Warning:
                return("War");

            case TraceTypeEnum.Error:
                return("Err");

            case TraceTypeEnum.Exception:
                return("Exc");

            default:
                return(tracerSource.ToString());
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="Body1" /> class.
 /// </summary>
 /// <param name="f">Optional parameter representing the output format of the response (default is JSON). (required) (default to &quot;json&quot;).</param>
 /// <param name="gdbVersion">The name of the geodatabase version. (default to &quot;sde.DEFAULT&quot;).</param>
 /// <param name="sessionId">Optional parameter representing the token (guid) used to lock the version. If the calling client has previously started a service session (editing) and holds an exclusive lock on the specified version, the request will fail if the sessionId is not provided. If the specified version is currently locked by any other session, the request will fail if the sessionId is not provided or does not match the sessionId which holds the exclusive lock. (default to &quot;&quot;).</param>
 /// <param name="moment">Optional parameter representing the session moment (the default is the version current moment). This should only be specified by the client when they do not want to use the current moment..</param>
 /// <param name="traceType">The trace type. (required).</param>
 /// <param name="traceLocations">***Curently a workaround until figure out how to gen**The locations for starting and stopping points, as well as barriers. Optional parameter for subnetwork trace type, required parameter for all other trace types. (required).</param>
 /// <param name="traceConfiguration">The locations for starting and stopping points, as well as barriers. Optional parameter for subnetwork trace type, required parameter for all other trace types. (required).</param>
 /// <param name="resultTypes">Optional parameter representing the types of results to return. (required).</param>
 public Body1(string f = "json", string gdbVersion = "sde.DEFAULT", string sessionId = "", string moment = default(string), TraceTypeEnum traceType = default(TraceTypeEnum), List traceLocations = default(List), Object traceConfiguration = default(Object), List resultTypes = default(List))
 {
     // to ensure "f" is required (not null)
     if (f == null)
     {
         throw new InvalidDataException("f is a required property for Body1 and cannot be null");
     }
     else
     {
         this.F = f;
     }
     // to ensure "traceType" is required (not null)
     if (traceType == null)
     {
         throw new InvalidDataException("traceType is a required property for Body1 and cannot be null");
     }
     else
     {
         this.TraceType = traceType;
     }
     // to ensure "traceLocations" is required (not null)
     if (traceLocations == null)
     {
         throw new InvalidDataException("traceLocations is a required property for Body1 and cannot be null");
     }
     else
     {
         this.TraceLocations = traceLocations;
     }
     // to ensure "traceConfiguration" is required (not null)
     if (traceConfiguration == null)
     {
         throw new InvalidDataException("traceConfiguration is a required property for Body1 and cannot be null");
     }
     else
     {
         this.TraceConfiguration = traceConfiguration;
     }
     // to ensure "resultTypes" is required (not null)
     if (resultTypes == null)
     {
         throw new InvalidDataException("resultTypes is a required property for Body1 and cannot be null");
     }
     else
     {
         this.ResultTypes = resultTypes;
     }
     // use default value if no "gdbVersion" provided
     if (gdbVersion == null)
     {
         this.GdbVersion = "sde.DEFAULT";
     }
     else
     {
         this.GdbVersion = gdbVersion;
     }
     // use default value if no "sessionId" provided
     if (sessionId == null)
     {
         this.SessionId = "";
     }
     else
     {
         this.SessionId = sessionId;
     }
     this.Moment = moment;
 }