File: ProcessInfo.cs

package info (click to toggle)
mono 6.8.0.105%2Bdfsg-3.3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,284,512 kB
  • sloc: cs: 11,172,132; xml: 2,850,069; ansic: 671,653; cpp: 122,091; perl: 59,366; javascript: 30,841; asm: 22,168; makefile: 20,093; sh: 15,020; python: 4,827; pascal: 925; sql: 859; sed: 16; php: 1
file content (175 lines) | stat: -rw-r--r-- 5,876 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
//------------------------------------------------------------------------------
// <copyright file="ProcessInfo.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------

/*
 * ProcessInfo class
 */
namespace System.Web {
    using System.Threading;
    using System.Security.Permissions;


    /// <devdoc>
    ///    <para>Provides enumerated values representing status of a process.</para>
    /// </devdoc>
    public enum ProcessStatus {

        /// <devdoc>
        ///    <para>Specifies that the process is running.</para>
        /// </devdoc>
        Alive         = 1,

        /// <devdoc>
        ///    <para>Specifies that the process has begun shutting down.</para>
        /// </devdoc>
        ShuttingDown  = 2,

        /// <devdoc>
        ///    <para>Specifies the the process has been shut down.</para>
        /// </devdoc>
        ShutDown      = 3,

        /// <devdoc>
        ///    <para>Specifies that the process has been terminated.</para>
        /// </devdoc>
        Terminated    = 4
    }
    

    /// <devdoc>
    ///    <para>Provides enumerated values representing the reason a process has shut 
    ///       down.</para>
    /// </devdoc>
    public enum ProcessShutdownReason {

        /// <devdoc>
        ///    <para>Specifies that the process has not been shut down.</para>
        /// </devdoc>
        None                = 0,           // alive

        /// <devdoc>
        ///    <para>Specifies that the process has been shut down unexpectedly.</para>
        /// </devdoc>
        Unexpected          = 1,

        /// <devdoc>
        ///    <para>Specifies that the process request exceeded the limit on number of 
        ///       processes.</para>
        /// </devdoc>
        RequestsLimit       = 2,

        /// <devdoc>
        ///    <para>Specifies that the process request exceeded the limit on number of 
        ///       processes in que.</para>
        /// </devdoc>
        RequestQueueLimit   = 3,

        /// <devdoc>
        ///    <para>Specifies that the process timed out.</para>
        /// </devdoc>
        Timeout             = 4,

        /// <devdoc>
        ///    <para>Specifies that the process exceeded the limit on process idle time.</para>
        /// </devdoc>
        IdleTimeout         = 5,

        /// <devdoc>
        ///    <para>Specifies that the process exceeded the limit of memory available per process.</para>
        /// </devdoc>
        MemoryLimitExceeded = 6,
        

        PingFailed = 7,


        DeadlockSuspected = 8
    }    


    /// <devdoc>
    ///    <para>Provides information on processes.</para>
    /// </devdoc>
    public class ProcessInfo {

        /// <devdoc>
        ///    <para>Indicates the time a process was started.</para>
        /// </devdoc>
        public DateTime               StartTime { get { return _StartTime;}}

        /// <devdoc>
        ///    <para>Indicates the length of time the process has been running.</para>
        /// </devdoc>
        public TimeSpan               Age { get { return _Age;}}

        /// <devdoc>
        ///    <para>Indicates the process id of the process.</para>
        /// </devdoc>
        public int                    ProcessID { get { return _ProcessID;}}

        public int                    RequestCount { get { return _RequestCount;}}

        /// <devdoc>
        ///    <para>Indicates the current status of the process.</para>
        /// </devdoc>
        public ProcessStatus          Status { get { return _Status;}}

        /// <devdoc>
        ///    <para>Indicates the reason the process shut down.</para>
        /// </devdoc>
        public ProcessShutdownReason  ShutdownReason { get { return _ShutdownReason;}}

        /// <devdoc>
        ///    <para>Indicates the maximum amount of memory the process has used.</para>
        /// </devdoc>
        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;


        /// <devdoc>
        ///    <para>Sets internal information indicating the status of the process.</para>
        /// </devdoc>
        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;
        }


        /// <devdoc>
        /// <para>Initializes a new instance of the <see langword='ProcessInfo'/> class and sets internal information 
        ///    indicating the status of the process.</para>
        /// </devdoc>
        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() {
        }

    }

}