//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ /* * ProcessInfo class */ namespace System.Web { using System.Threading; using System.Security.Permissions; /// /// Provides enumerated values representing status of a process. /// public enum ProcessStatus { /// /// Specifies that the process is running. /// Alive = 1, /// /// Specifies that the process has begun shutting down. /// ShuttingDown = 2, /// /// Specifies the the process has been shut down. /// ShutDown = 3, /// /// Specifies that the process has been terminated. /// Terminated = 4 } /// /// Provides enumerated values representing the reason a process has shut /// down. /// public enum ProcessShutdownReason { /// /// Specifies that the process has not been shut down. /// None = 0, // alive /// /// Specifies that the process has been shut down unexpectedly. /// Unexpected = 1, /// /// Specifies that the process request exceeded the limit on number of /// processes. /// RequestsLimit = 2, /// /// Specifies that the process request exceeded the limit on number of /// processes in que. /// RequestQueueLimit = 3, /// /// Specifies that the process timed out. /// Timeout = 4, /// /// Specifies that the process exceeded the limit on process idle time. /// IdleTimeout = 5, /// /// Specifies that the process exceeded the limit of memory available per process. /// MemoryLimitExceeded = 6, PingFailed = 7, DeadlockSuspected = 8 } /// /// Provides information on processes. /// public class ProcessInfo { /// /// Indicates the time a process was started. /// public DateTime StartTime { get { return _StartTime;}} /// /// Indicates the length of time the process has been running. /// public TimeSpan Age { get { return _Age;}} /// /// Indicates the process id of the process. /// public int ProcessID { get { return _ProcessID;}} public int RequestCount { get { return _RequestCount;}} /// /// Indicates the current status of the process. /// public ProcessStatus Status { get { return _Status;}} /// /// Indicates the reason the process shut down. /// public ProcessShutdownReason ShutdownReason { get { return _ShutdownReason;}} /// /// Indicates the maximum amount of memory the process has used. /// public int PeakMemoryUsed { get { return _PeakMemoryUsed;}} private DateTime _StartTime; private TimeSpan _Age; private int _ProcessID; private int _RequestCount; private ProcessStatus _Status; private ProcessShutdownReason _ShutdownReason; private int _PeakMemoryUsed; /// /// Sets internal information indicating the status of the process. /// public void SetAll (DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { _StartTime = startTime; _Age = age; _ProcessID = processID; _RequestCount = requestCount; _Status = status; _ShutdownReason = shutdownReason; _PeakMemoryUsed = peakMemoryUsed; } /// /// Initializes a new instance of the class and sets internal information /// indicating the status of the process. /// public ProcessInfo (DateTime startTime, TimeSpan age, int processID, int requestCount, ProcessStatus status, ProcessShutdownReason shutdownReason, int peakMemoryUsed) { _StartTime = startTime; _Age = age; _ProcessID = processID; _RequestCount = requestCount; _Status = status; _ShutdownReason = shutdownReason; _PeakMemoryUsed = peakMemoryUsed; } public ProcessInfo() { } } }