2008-09-10 Bill Holmes <billholmes54@gmail.com>
[mono.git] / mcs / class / System / System.Diagnostics / ChangeLog
1 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
2
3         * Process.cs : Update the fields of ProcessAsyncReader to 
4           match MonoSocketAsyncResult metadata/socket-io.h
5
6         Contributed under MIT/X11 license.
7
8 2008-09-09  Jonathan Pryor  <jpryor@novell.com>
9
10         * TraceImpl.cs:
11           - Remove the "lock-free" code, which (come to think of it) would be 
12             faulty in a multithreaded environment anyway because the "other"
13             threads won't wait (block) until initialization is complete...
14           - Add InitOnce() calls to all public properties, so that
15             `Debug.AutoFlush=true' will cause InitOnce() to be loaded, lest
16             a `Debug.AutoFlush=true; Debug.Listeners.Add(...)` sequence cause
17             .AutoFlush=true to be ignored as the InitOnce implied by .Add() 
18             will "overwrite" the .AutoFlush.
19           - Split up TraceListenerCollection creation from DefaultTraceListener 
20             addition, as TraceListenerCollection.Add() calls back into 
21             TraceImpl, so if these aren't separate we get an infinite loop
22             and never actually initialize anything.
23           - Fixes #424370.
24         * TraceListenerCollection.cs: Add a TraceListenerCollection(bool)
25           constructor, which provides a way to NOT add the
26           DefaultTraceListener (needed by TraceImpl; see above).
27
28 2008-08-06  Sebastien Pouliot  <sebastien@ximian.com>
29
30         * Debug_2_1.cs: Add missing [Conditional] attributes.
31
32 2008-08-02  Gert Driesen  <drieseng@users.sourceforge.net>
33
34         * DelimitedTraceListener.cs: Changed accessibility of
35         GetSupportedAttributes to protected internal.
36         * DiagnosticsConfigurationHandler.cs: Use GetSupportedAttributes to
37         allow custom attributes on tracelisteners. Fixes bug #413203.
38         * TraceListener.cs: Changed accessibility of GetSupportedAttributes
39         to protected internal. Removed MonoTODO on GetSupportedAttributes and
40         Attributes. Fixed line endings.
41
42 2008-08-01  Paolo Molaro <lupus@ximian.com>
43
44         * CounterCreationData.cs, PerformanceCounterCategory.cs: more
45         checks and default type fix.
46
47 2008-07-28  Dick Porter  <dick@ximian.com>
48
49         * Process.cs: When passing handle references around, it needs to
50         be duplicated and freed so the OS doesn't close it.  Makes the
51         testcase in 410743 work again now the underlying bug has been
52         fixed.
53
54 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
55
56         * Process.cs (SetExitCallbackIfNeeded): Avoid a race condition by not
57         checking for HashExited.
58
59 2008-06-27  Atsushi Enomoto  <atsushi@ximian.com>
60
61         * DiagnosticsConfigurationHandler.cs: quick build fix (hopefully).
62
63 2008-06-26  Gert Driesen  <drieseng@users.sourceforge.net>
64
65         * DiagnosticsConfigurationHandler.cs: On 2.0 profile, throw
66         ConfigurationErrorsException when any attribute other than 'Name'
67         is found when referencing a shared listener. Fixes bug #404054.
68         Added support for the traceOutputOptions attribute on 2.0 profile.
69         Fixes bug #403583. 
70
71 2008-06-21  Robert Jordan  <robertj@gmx.net>
72
73         * Process.cs (Start_common): UserName may be null or empty.
74         Fixes bug  #350543.
75
76 2008-06-19  Dick Porter  <dick@ximian.com>
77
78         * Process.cs: Match the buffer sizes of StreamReader and
79         MonoSyncFileStream for redirected stdout and stderr.  Fixes bug
80         401225.
81
82 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
83
84         * TraceImpl.cs: Update the IndentLevel property of this class when Indent ()
85         or Unindent () are called. Fixes #385666.
86
87 2008-03-26  Dick Porter  <dick@ximian.com>
88
89         * FileVersionInfo.cs: Patch from Gert Driesen
90         (gert.driesen@pandora.be) for bug 355717.
91
92 2008-03-19  Zoltan Varga  <vargaz@gmail.com>
93
94         * Stopwatch.cs: Fix visibility of GetTimestamp () method.
95
96 Thu Feb 28 19:52:30 CET 2008 Paolo Molaro <lupus@ximian.com>
97
98         * CounterCreationData.cs, PerformanceCounterCategory.cs,
99         PerformanceCounter.cs: bugfixes, icalls for categories,
100         more methods implemented.
101
102 Wed Feb 27 20:00:04 CET 2008 Paolo Molaro <lupus@ximian.com>
103
104         * CounterSample.cs, CounterSampleCalculator.cs, PerformanceCounter.cs,
105         PerformanceCounterCategory.cs, PerformanceCounterCategoryType.cs:
106         beginning of the performance counter implementation.
107
108 Tue Feb 26 18:37:13 CET 2008 Paolo Molaro <lupus@ximian.com>
109
110         * Stopwatch.cs: use an hires monotonic clock.
111
112 2008-01-23  Gert Driesen  <drieseng@users.sourceforge.net>
113
114         * FileVersionInfo.cs (GetVersionInfo): Resolve filename to absolute
115         path, and throw FileNotFoundException if it does not exist.
116
117 2007-12-22  Gert Driesen  <drieseng@users.sourceforge.net>
118
119         * Process.cs: In PriorityClass setter, first check whether value is
120         valid and remove LAMESPEC since the documentation has been corrected
121         for .NET 3.5. Code formatting.
122
123 2007-12-19  Dick Porter  <dick@ximian.com>
124
125         * Process.cs: Check that the process has been started before
126         getting or setting the priority class.  Fixes bug 348415.
127
128 2007-12-10  Miguel de Icaza  <miguel@novell.com>
129
130         * DefaultTraceListener.cs: By default set the AssertUiEnabled to
131         false, as this is what we had previously and some broken
132         applications (Tomboy) are too trigger happy with Debug.Assert. 
133
134         Also, we now load the Windows.Forms code on demand, instead of
135         preloading it on the static ctor to reduce memory usage.
136
137 2007-12-08  Gert Driesen  <drieseng@users.sourceforge.net>
138
139         * LocalFileEventLog.cs: To allow entry to be fully written before
140         attempting to read it, added small sleep period in the Created event
141         of the FSW.
142
143 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
144
145         * Process.cs: Modified StartInfo to throw ArgumentNullException when
146         value is set to null, instead of ArgumentException. Remove check if
147         file name is rooted and exists when UseShellExecute is false, and let
148         runtime handle this. Fixes bug #3455655. When a process cannot be
149         started, do not access ProcessStartInfo.EnvironmentVariables since that
150         would not allow us to re-use the instance when changing
151         UseShellExecute. Added argument check in Start (ProcessStartInfo).
152         Code formatting.
153
154 2007-11-16  Jb Evain  <jbevain@novell.com>
155
156         * Debug_2_1.cs: simply write debug messages to the
157         console.
158
159 2007-11-15  Dick Porter  <dick@ximian.com>
160
161         * Process.cs: Pass the process handle to GetModules_internal();
162
163 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
164
165         * Process.cs : ... and it exposed some missing attributes.
166
167 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
168
169         * Process.cs : oops, SessionId was int.
170
171 2007-11-13  Atsushi Enomoto  <atsushi@ximian.com>
172
173         * Process.cs : added missing SessionId (NIE).
174
175 2007-10-30  Robert Jordan  <robertj@gmx.net>
176
177         * Process.cs: Wrap the redirected streams with a stream
178         that provides real async Begin/Read|Write operations.
179         Fixes bug #319829.
180
181 2007-09-25  Miguel de Icaza  <miguel@novell.com>
182
183         * Process.cs: Return an empty collection to prevent crashes;
184         Fixes #319946
185
186 Tue Sep 25 18:03:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
187
188         * Process.cs: eliminate the console encoding logic which was
189         duplicated from System.Console and just use Console.Out.Encoding
190         (bug #328162).
191
192 2007-09-21  Gert Driesen  <drieseng@users.sourceforge.net>
193
194         * DiagnosticsConfigurationHandler.cs: Rename ValidateIntegralValue
195         to GetSwitchValue. On 2.0 profile, leave the type conversion to
196         Switch implementations. Minor corrections to exception messages to
197         match MS.
198         * Switch.cs: Avoid unnecessary inits. On 2.0 profile, catch and
199         rethrow exceptions in setter for Value. Do not hide exceptions thrown
200         in GetConfigFileSetting. Only set value from config file if switch is
201         actually defined.
202         * SourceSwitch.cs: Use SwitchSetting for getting/storing value instead
203         of new field. In OnValueChanged, parse enum value.
204         * TraceSwitch.cs: If SwitchSetting is changed to value > 4, then set
205         it to Verbose. In OnValueChanged, parse value case-insensitively, and
206         assign it to SwitchSetting (to allow other integral values).
207
208 2007-09-05  Atsushi Enomoto  <atsushi@ximian.com>
209
210         * EventLog.cs : added cosmetic 2.0 attributes on newly added members.
211
212 2007-09-05  Atsushi Enomoto  <atsushi@ximian.com>
213
214         * EventLog.cs, EventLogImpl.cs, LocalFileEventLog.cs, NullEventLog.cs,
215           Win32EventLog.cs : added missing members, will be left unsupported
216           in non-Win32 impl and left unimplemented in Win32.
217         * CounterCreationDataCollection.cs : in 2.0 OnValidate() is overriden
218           instad of OnInsert().
219         * Process.cs : removed StandardErrorEncoding and
220           StandardOutputEncoding. They do not exist anymore.
221
222 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
223
224         * ProcessStartInfo.cs : Implemented Verbs. It is done.
225
226 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
227
228         * Process.cs, ProcessStartInfo.cs : user info support (on windows).
229
230 2007-08-23  Robert Jordan  <robertj@gmx.net>
231
232         * Process.cs: implement PriorityClass. Fixes #81756.
233
234 Mon Aug 20 12:41:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
235
236         * Process.cs: implemented icall for system/user times.
237
238 2007-08-14  Gert Driesen  <drieseng@users.sourceforge.net>
239
240         * EventLog.cs: Do not allow all whitespace machine name. Do nothing
241         when setting the same value for EnableRaisingEvents, and only modify
242         value of field when enable/disable succeeded. Treats log name case
243         insensitively on all platforms, and perform reset when the log name
244         is changed. Validate new machine name in property, and treat it
245         case-insensitively. Perform reset when source is modified, and log
246         name was not explicitly set. When EventLog is closed, also disable
247         event watcher.
248         * LocalEventLog.cs: In Close, clean-up the FileSystemWatcher. Add
249         locking to Created eventhandler to avoid duplicate notifications.
250         * Win32EventLog.cs: Cache handle for reading from eventlog. In Close,
251         close the read handle. Implement support for watching win32 eventlog.
252         Fixes bug #82436.
253
254 2007-08-08  Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
255
256         * Process.cs: added StandardOutputEncoding and StandardErrorEncoding
257         properties. Bug #82262 fixed.
258
259 2007-08-06  Atsushi Enomoto  <atsushi@ximian.com>
260
261         * Process.cs, ProcessStartInfo.cs : added StandardOutputEncoding
262           and StandardErrorEncoding.
263
264 2007-08-06  Atsushi Enomoto  <atsushi@ximian.com>
265
266         * PerformanceCounterCategory.cs PerformanceCounter.cs :
267           added missing 2.0 stuff (unimplemented, where things are anyways
268           unimplemented in 1.x layer).
269
270 2007-08-06  Atsushi Enomoto  <atsushi@ximian.com>
271
272         * PerformanceCounterInstanceLifetime.cs
273           PerformanceCounterCategoryType.cs : new.
274         * ICollectData.cs ProcessStartInfo.cs
275           InstanceDataCollectionCollection.cs PerformanceCounter.cs
276           InstanceDataCollection.cs Process.cs :
277           cosmetic attributes cleanup.
278
279 2007-08-03  Jb Evain  <jbevain@novell.com>
280
281         * FileVersionInfo.cs: force the use of the params
282         AppendFormat method of StringBuilder as it is the only
283         one accessible in 2.1 and in the previous versions.
284
285 2007-08-03  Jb Evain  <jbevain@novell.com>
286
287         * FileVersionInfo.cs: remove CAS checks for 2.1.
288
289 2007-08-03  Jb Evain  <jbevain@novell.com>
290
291         * Process.cs: disable StartExistCallbackIfNeeded in 2.1.
292
293 2007-08-03  Jb Evain  <jbevain@novell.com>
294
295         * ProcessThreadCollection.cs
296           ProcessModuleCollection.cs: use our own collection base
297           for the 2.1 profile, as ReadOnlyCollectionBase does not exist
298           in 2.1, and they are internalized by the linker.
299
300 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
301
302         * EventLogTraceListener.cs : fixed wrong 2.0 dependency in 1.x.
303
304 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
305
306         * EventLogTraceListener.cs : implemented.
307
308 2007-08-02  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * EventLogImpl.cs
311           EventLog.cs
312           LocalFileEventLog.cs : Implemented EntryWritten event support.
313         * Win32EventLog.cs, NullEventLog.cs : they need stub overrides.
314         * EventLogEntry.cs : [MonitoringDescription].
315         * DiagnosticsConfigurationHandler.cs : [Obsolete]
316
317 2007-08-01  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * DefaultTraceListener.cs : implemented AssertUiEnabled using MWF.
320
321 2007-08-01  Atsushi Enomoto  <atsushi@ximian.com>
322
323         * CounterSample.cs : implemented missing 2.0 equality stuff.
324         * CounterSampleCalculator.cs : static in 2.0.
325
326 2007-07-24 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
327
328         * Process.cs: use the default encoding or the windows input/output
329         encodings for the process input/output/error streams. Bug #80838 fixed.
330
331 2007-07-14 Gonzalo Paniagua Javier <gonzalo.mono@gmail.com>
332
333         * Process.cs: don't send empty lines that are not in the input. Fixes
334         bug #79529.
335
336 2007-07-11  Ankit Jain  <jankit@novell.com>
337
338         * ProcessStartInfo.cs (WorkingDirectory.set): Don't set
339         working_directory to null.
340
341 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
342
343         * TraceSourceInfo.cs : new class for storing configuration data.
344         * TraceSource.cs : TraceEventCache arguments should be null (they are
345           nullable). Use TraceSourceInfo above.
346         * DiagnosticsConfigurationHandler.cs : removed hack to store listeners
347           in named sources, not traceimpl. Create TraceSource objects from
348           configuration data.
349
350 2007-05-18  Marek Safar  <marek.safar@gmail.com>
351
352         * DiagnosticsConfigurationHandler.cs: Fixed 1.1 build.
353
354 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
355
356         * XmlWriterTraceListener.cs : open file in shared r/w mode.
357         * DiagnosticsConfigurationHandler.cs : process <sharedListeners>
358           elements first, so that named listeners work fine.
359         * EventLogTraceListener.cs : added 2.0 stubs.
360         * CorrelationManager.cs : removed todo.
361
362 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
363
364         * TraceListener.cs : in TraceTransfer(), use TraceEvent() (some
365           derived classes depend on this change).
366         * DelimitedListTraceListener.cs : implemented.
367
368 2007-05-18  Atsushi Enomoto  <atsushi@ximian.com>
369
370         * EventLogPermissionAccess.cs ProcessPriorityClass.cs
371           ProcessWindowStyle.cs ThreadWaitReason.cs TraceImpl.cs
372           Trace.cs ThreadPriorityLevel.cs EventLogEntryType.cs
373           PerformanceCounterPermissionAccess.cs PerformanceCounterType.cs
374           TraceListener.cs ThreadState.cs : cosmetic API fixes.
375         * SwitchAttribute.cs : implemented GetAll().
376
377 2007-05-17  Atsushi Enomoto  <atsushi@ximian.com>
378
379         * TraceOptions.cs : new enum.
380         * TraceListener.cs : support TraceOutputOptions. Fixed missing
381           NET_2_0 condition in TARGET_JVM section.
382         * TraceSwitch.cs, BooleanSwitch.cs :
383           Added missing constructors and OnValueChanged().
384         * Trace.cs, TraceImpl.cs :
385           Added CorrelationManager and UseGlobalLock.
386         * TraceEventCache.cs : initialize property values at construction.
387         * Switch.cs : added XmlIgnore on Attributes.
388
389 2007-05-15 Adar Wesley <adarw@mainsoft.com>
390
391         * Trace.cs: added missing method Refresh.
392
393 2007-05-14  Atsushi Enomoto  <atsushi@ximian.com>
394
395         * EventTypeFilter.cs
396           TraceFilter.cs
397           SourceFilter.cs
398           SwitchLevelAttribute.cs
399           DelimitedListTraceListener.cs
400           SwitchAttribute.cs : new files in 2.0.
401         * DiagnosticsConfigurationHandler.cs : partial support for named
402           shared listeners.
403         * XmlWriterTraceListener.cs : cosmetic corcompare fixes. Added
404           missing todos.
405         * TraceListener.cs : added missing 2.0 stuff. Implemented Filter.
406         * DefaultTraceListener.cs : trivial ComVisible fix.
407
408 2007-05-10  Atsushi Enomoto  <atsushi@ximian.com>
409
410         * TextWriterTraceListener.cs : open log file in readwrite share mode.
411           This fixes bug #81296.
412
413 2007-05-08 Igor Zelmanovich <igorz@mainsoft.com>
414
415         * TraceImpl.cs:
416         * TraceListener.cs:
417         for TARGET_JVM used Thread Local Storage istead 
418         Thread-Relative Static Fields 
419
420 2007-05-02  Jonathan Chambers  <joncham@gmail.com>
421
422         * Stopwatch.cs : Implement high performance stopwatch on windows.
423
424 2007-04-19  Atsushi Enomoto  <atsushi@ximian.com>
425
426         * XmlWriterTraceListener.cs : new file, implementated.
427         * TraceListener.cs : implemented 2.0 members.
428
429 2007-03-04  Vladimir Krasnov  <vlaimdirk@mainsoft.com>
430
431         * DiagnosticsConfigurationHandler.cs: removed configuration init in
432         TARGET_JVM since not supported
433
434 2007-02-02  Gert Driesen  <drieseng@users.sourceforge.net>
435
436         * EventLogImpl.cs: When no log name is specified, return zero-length
437         string for LogDisplayName.
438
439 2007-01-28 Ilya Kharmatsky <ilyak -at- mainsoft.com>
440
441         * TraceEventCache.jvm.cs: added as a stub class.
442
443 Tue Jan 23 17:19:13 CET 2007 Paolo Molaro <lupus@ximian.com>
444
445         * ProcessStartInfo.cs: put the fields in the order expected
446         by the runtime code.
447
448 2007-01-18  Atsushi Enomoto  <atsushi@ximian.com>
449
450         * Switch.cs : added missing .ctor(), Attributes, Value, 
451           GetSupportedAttributes() and OnValueChanged().
452         * DiagnosticsConfigurationHandler.cs : added some hacky handler for
453           new "sources" element. Don't wrap another ConfigurationException.
454         * TraceListener.cs : added missing trace methods.
455         * TraceSource.cs, SourceLevels.cs, CorrelationManager.cs,
456           TraceEventCache.cs, TraceEventType.cs, SourceSwitch.cs:
457           added missing 2.0 stuff, mostly just stubs.
458
459 2007-01-12  Miguel de Icaza  <miguel@novell.com>
460
461         * Trace.cs: Add a number of 2.0 overloads.
462
463 2007-01-02  Gert Driesen  <drieseng@users.sourceforge.net>
464
465         * Process.cs: Allow GetProcesses and GetProcessById overloads with 
466         machine name to work for local machine.
467
468 2006-12-29  Robert Jordan  <robertj@gmx.net>
469
470         * TraceImpl.cs (Assert): Include line numbers in the stack trace
471         emitted by Assert (). Fixes bug #80400.
472
473 Thu Dec 14 20:24:09 CET 2006 Paolo Molaro <lupus@ximian.com>
474
475         * Process.cs: if a process object is restarted, close the
476         previous process handle (bug #80143).
477
478 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
479
480         * Process.cs: the Process returned by the static Start method never had
481         the right ProcessStartInfo. Fixes bug #80019.
482
483 2006-10-13  Atsushi Enomoto  <atsushi@ximian.com>
484
485         * DiagnosticsConfigurationHandler.cs : be more skeptic on
486           broken configuration file.
487
488 2006-09-28 Andrew Skiba <andrews@mainsoft.com>
489
490         * DefaultTraceListener.cs: TARGET_JVM
491
492 2006-09-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
493
494         * Process.cs: fix operation number to be 8. The other one was working
495         because the default is to wait for input on the file descriptor.
496
497 2006-09-05  Gert Driesen  <drieseng@users.sourceforge.net>
498
499         * Win32EventLog.cs: Removed workarounds for bug #79152 and bug #79117
500         now that these have been fixed. Release unmanaged memory that was
501         allocated for replacement strings.
502
503 2006-08-27  Gert Driesen  <drieseng@users.sourceforge.net>
504
505         * NullEventLog.cs: Added dummy GetLogNames implementation.
506         * EventLogImpl.cs: Moved GetEventLogs implementation to base class.
507         Added abstract GetLogNames method. Added ValidateCustomerLogName
508         method which should be called by eventlog providers when creating a
509         new log to ensure the significant part of the log name is unique, does
510         not match any of the special log names and does not match an exist event
511         source.
512         * Win32EventLog.cs: Validate customer log name when creating new log.
513         Moved GetEventLogs implementation to base class. Added GetLogNames
514         method.
515         * LocalFileEventLog.cs: Merged CreateLogStore into CreateEventSource.
516         Validate customer log name when creating new log. Moved GetEventLogs
517         implementation to base class. Added GetLogNames method.
518
519 2006-08-26  Gert Driesen  <drieseng@users.sourceforge.net>
520
521         * Win32EventLog.cs: Fixed error messages. Use RegisterEventSource
522         pinvoke when opening eventlog for writing entries.
523
524 2006-08-26  Gert Driesen  <drieseng@users.sourceforge.net>
525
526         * Win32EventLog.cs: Added and documented workarounds for bug #79117
527         and bug #79152.
528
529 2006-08-25  Gert Driesen  <drieseng@users.sourceforge.net>
530
531         * LocalFileEventLog.cs: When event log store does not exist, then we
532         do not need to perform a case-insensitive lookup of the log name.
533
534 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
535
536         * EventLog.cs: Removed namespace import.
537         * EventInstance.cs: Added range checks and check whether specified
538         entry type is defined.
539
540 2006-08-20  Gert Driesen  <drieseng@users.sourceforge.net>
541
542         * EventLogEntry.cs: Added InstanceId property (2.0 only). Moved
543         Obsolete attribute to correct property.
544         * EventSourceCreationData.cs: Updated copyright. For internal ctor,
545         set log name to "Application" if value is null or zero-length string.
546         * EventLogImpl.cs: EventImpl now acts as base class for event log 
547         implemenations.
548         * NullEventLog.cs: Modified to implement new abstract methods of base
549         class. Removed factory class.
550         * EventLog.cs: EventLog implementation that delegates just about 
551         everything to individual eventlog providers. To specify the event log
552         implementation to use, the MONO_EVENTLOG_TYPE environment variable can
553         be used. Possible values are:
554         - win32 : read/write entries using the native win32 eventlog
555         - local[:path] : read/write entries as files to a local directory
556         - null : silently ignore all entries
557         The default is "null" on unix (and versions of Windows before NT,
558         meaning Windows 98, ...), and "win32" on Windows NT (and higher).
559         When "the local" implementation is used, the directory in which to 
560         store the event logs, event sources and entries can be specified as 
561         part of MONO_EVENTLOG_TYPE environment variable using the syntax 
562         "local:<path>" (eg. local:/home/myuser/mono/eventlog).
563         * LocalFileEventLog.cs: Event log implementation which uses a local
564         file store. The directory to use for persistence can be specified
565         as part of the MONO_EVENTLOG_TYPE environment variable (see above).
566         If that directory is not explicitly set, then the following directory
567         will be used for storing eventlog entries:
568         - windows       : %APPDATA%\mono\eventlog
569         - unix          : /var/lib/mono/eventlog
570         On unix, the directory permission for individual eventlog log 
571         directories will be set to 777 (with +t bit) allowing everyone to
572         read and write eventlog entries while only allowing entries to be
573         deleted by the user(s) that created them.
574         Format of log files was modified to allow it contain all necessary
575         information for an event log entry.
576         * Win32EventLog.cs: Event log implementation for Windows NT and 
577         higher which uses the Win32 native event log for reading/writing
578         eventlog entries, and which uses the registry to store event log and
579         event source registration information.
580         * EventLogEntryCollection.cs: Delegate implementation to event log
581         implementation. Use lazy init for enumerating entries. Cache current
582         item in 2.0 profile.
583
584 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
585
586         * LocalFileEventLog.cs : change lengthy environment variable name.
587           MONO_LOCAL_EVENTLOG_PATH -> MONO_EVENTLOG_PATH.
588
589 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
590
591         * EventLogImpl.cs, EventLogEntryCollection.cs, EventLog.cs :
592           some rework to support actual event log implementations.
593         * NullEventLog.cs, LocalFileEventLog.cs :
594           new files. The former (default) implementation does nothing for
595           any event log features. The latter implements local file based
596           event logs.
597
598 2006-08-14  Atsushi Enomoto  <atsushi@ximian.com>
599
600         * UnixEventLog.cs, EventLogEntry.cs, EventSourceCreationData.cs,
601           EventLogImpl.cs, Win32EventLog.cs, EventLogEntryCollection.cs,
602           EventLog.cs:
603           Reverted previous two changes that does not work at all.
604
605 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
606
607         * EventLog.cs: For now, Use null implementation.
608
609 2006-08-11  Gert Driesen  <drieseng@users.sourceforge.net>
610
611         * EventLogEntry.cs: Added InstanceId property (2.0 only). Moved
612         Obsolete attribute to correct property.
613         * EventSourceCreationData.cs: Updated copyright. For internal ctor,
614         set log name to "Application" if value is null or zero-length string.
615         * EventLogImpl.cs: EventImpl now acts as base class for event log 
616         implemenations. Added NullEventLog implementation, which is not used
617         at the moment.
618         * EventLog.cs: EventLog implementation that uses registry for
619         keeping track of logs and sources to match .NET (and Windows). When
620         running on Windows NT (and higher), event entries are written to
621         the native win32 event log.  Reading event entries is not yet working
622         for Windows. On linux, we use a local file store (based on patch by 
623         Atsushi).
624         * UnixEventLog.cs: Event log implementation for linux which uses a
625         local file store.
626         * Win32EventLog.cs: Event log implementation for Windows NT and 
627         higher which uses the Win32 native event log.
628         * EventLogEntryCollection.cs: Delegate implementation to event log
629         implemenation. Use lazy init for enumerating entries.
630
631 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
632
633         * Process.cs: reset the 'start' time if we wait for stdout reading to
634         be completed.
635
636 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
637
638         * Process.cs: add support for 2.0 asynchronous reads on stdout and
639         stderr.
640
641 2006-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
642
643         * EventSourceCreationData.cs: Marked ctor internal, and removed ctor.
644         Throw ArgumentOutOfRangeException if negative value for CategoryCount
645         is set.
646
647 2006-08-09  Gert Driesen  <drieseng@users.sourceforge.net>
648
649         * EventInstance.cs: Added 2.0 class.
650         * EventSourceCreationData.cs: Added 2.0 class.
651         * OverflowAction.cs: Added 2.0 enum.
652
653 2006-07-31  Sebastien Pouliot  <sebastien@ximian.com>
654
655         * EventLogEntry.cs: Add a linkdemand for unrestricted on class.
656         * EventLogTraceListener.cs: Add a linkdemand for unrestricted on class
657         * FileVersionInfo.cs: Add a linkdemand for unrestricted on class. Add
658         an imperative demand for FileIOPermission.Read on GetVersionInfo 
659         method. Change ToString method to use a StringBuilder.
660         * PerformanceCounterCategory.cs: Add a linkdemand for unrestricted on
661         class.
662         * PerformanceCounterManager.cs: Add a linkdemand for unrestricted on 
663         class. Add [Obsolete] for NET_2_0 profile.
664         * Process.cs: Add a linkdemand and an inheritancedemand for 
665         unrestricted on class.
666         * ProcessStartInfo.cs: Add a linkdemand for unrestricted on class.
667
668 2006-07-16  Andrew Skiba <andrews@mainsoft.com>
669
670         * Process.cs: throw FileNotFoundException earlier; give more
671         diagnostics.
672
673 2006-05-16  Dick Porter  <dick@ximian.com>
674
675         * Process.cs: Dispose the handle from a destructor too
676
677 2006-04-04  Atsushi Enomoto  <atsushi@ximian.com>
678
679         * Stopwatch.cs:
680           Zoltan was quicker to add it, here I put my implementation ;-)
681         * Process.cs :
682           Added some missing long members (not implemented anyways).
683         * DataReceivedEventHandler.cs DataReceivedEventArgs.cs :
684           added new 2.0 types.
685
686 2006-04-01  Zoltan Varga  <vargaz@gmail.com>
687
688         * Stopwatch.cs: New file.
689
690 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
691
692         * Debug.cs: Add net 2.0 Print methods.
693
694 2006-03-03  Dick Porter  <dick@ximian.com>
695
696         * Process.cs: Close redirected pipes on errors.  Fixes bug 77514.
697
698 2006-01-12  Ben Maurer  <bmaurer@andrew.cmu.edu>
699
700         * ConsoleTraceListener.cs: New 2.0 class
701
702 2005-11-17  Dick Porter  <dick@ximian.com>
703
704         * Process.cs: Split Start_common into Start_shell and
705         Start_noshell, which call ShellExecuteEx and CreateProcess
706         respectively.  Fixes bug 76670.
707
708 2005-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
709
710         * Process.cs: deal with the fact that someone can enable raising events
711         and/or registed a Exited delegate before and *after* Start is called for
712         the process. Only queue the exit callback in the threadpool when it's
713         possible and requested. Fixes bug #76129.
714
715 2005-08-09  Gert Driesen <drieseng@users.sourceforge.net>
716
717         * EventLog.cs: Fixed Designer attribute to match MS.NET.
718         * ICollectData.cs: Added marshalling attribute to match MS.NET.
719         * PerformanceCounter.cs: Fixed Designer attribute to match MS.NET.
720         * Process.cs: Fixed Designer attribute to match MS.NET, modified
721         * ProcessModule.cs: Fixed Designer attribute to match MS.NET.
722         * ProcessThread.cs: Fixed Designer attribute to match MS.NET.
723         DesignerSerializationVisibility on StartInfo to match MS.NET, changed
724         Category attribute on Exited event to match MS.NET.
725
726 2005-06-09  Gert Driesen <drieseng@users.sourceforge.net>
727
728         * TraceImpl.cs: Adjust internal indentlevel and indentsize before 
729         passing on to listeners. Fixes some test failures.
730
731 2005-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
732
733         * DefaultTraceListener.cs: s/MONO_TRACE/MONO_TRACE_LISTENER/. The
734         runtime uses MONO_TRACE too...
735
736 2005-05-31  Sebastien Pouliot  <sebastien@ximian.com>
737
738         * PerformanceCounterPermissionEntry.cs: Added more 2.0 validations for
739         machine names and PerformanceCounterPermissionAccess.
740
741 2005-02-22 Jonathan Pryor  <jonpryor@vt.edu>
742
743         * TraceImpl.cs: More Thread-safety fixes.  I have to lock on
744           Listeners.SyncRoot as we're traversing the collection and can't let the
745           collection change from underneath us while we're iterating over it
746           (alternately, we could clone the collection and iterate over the clone
747           without having locking issues -- assuming we had a lock-free clone -- 
748           but this would kill the GC).  Fixes 69964.  Only define lock_ if we're 
749           using the lock-free initialization routine; it's not used otherwise.
750
751 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
752
753         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): 
754           Use a lock-free algorithm for creating the settings information.
755         * TraceImpl.cs (InitOnce): Use a lock-free algorithm for creating the
756           listeners collection and initializing the world.
757
758 2005-01-18 Jonathan Pryor  <jonpryor@vt.edu>
759
760         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfiguration): Don't 
761           read the .config file from the static ctor (again), as if it fails we'll 
762           get a TypeLoadException -- bad!  Instead, lazy-read the .config file.
763         * DiagnosticsConfigurationHandler.cs (DiagnosticsConfigurationHandler): 
764           Require that the /switch/add/@value attribute contains only numeric values.
765         * TraceImpl.cs: Don't initialize everything in the static ctor, as if it
766           fails (due to an invalid .confg file) we get a TypeLoadException, while
767           .NET generates a ConfigurationException.  Instead, initialize everything
768           the first time the Listeners property is accessed, which allows the static
769           ctor to run without chance of failure, avoiding the TypeLoadException.
770         * TraceListenerCollection.cs: This should be thread-safe, as it's accessible
771           from a static member of TraceImpl (available through the public Debug and 
772           Trace classes).
773         * Switch.cs: Leave the original switch value alone.  If it isn't valid 
774           (i.e. numeric), the DiagnosticsConfigurationHandler will catch it.
775
776 2005-01-17 Jonathan Pryor  <jonpryor@vt.edu>
777
778         * DiagnosticsConfigurationHandler.cs: The /switch/add/@value attribute 
779           isn't optional under .NET 1.1, so make sure it exists.
780
781 2005-01-13 Jonathan Pryor  <jonpryor@vt.edu>
782
783         * DiagnosticsConfigurationHandler.cs: Make DiagnosticsConfiguration.Settings
784           thread-safe (double-checked locking isn't thread safe on .NET without
785           using a volatile variable, and setting the variable in the static
786           constructor is easier anyway).
787         * Switch.cs (GetConfigFileSetting): If the setting is non-numeric, set the
788           attribute value to the string "0".  This is apparently what .NET 1.1 does,
789           and allows the SwitchTest NUnit test to work w/o failures.
790
791 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
792
793         * Process.cs: always pass the same arguments to the runtime.
794
795 2004-09-11  Sebastien Pouliot  <sebastien@ximian.com>
796
797         * EventLogPermission.cs: Completed implementation.
798         * EventLogPermissionAccess.cs: Fixed enum values.
799         * EventLogPermissionEntry.cs: Added validation for machine names.
800         * EventLogPermissionEntryCollection.cs: Added synchronization
801         of entries with the base permission class.
802         * PerformanceCounterPermission.cs: Completed implementation.
803         * PerformanceCounterPermissionAccess.cs: Fixed enum values.
804         * PerformanceCounterPermissionEntry.cs: Added validations for machine
805         and category names.
806         * PerformanceCounterPermissionEntryCollection.cs: Added synchronization
807         of entries with the base permission class.
808
809 2004-09-10  Sebastien Pouliot  <sebastien@ximian.com>
810
811         * EventLogPermission.cs: Fixed initialization (TagNames and
812         PermissionAccessType).
813         * EventLogPermissionAccess.cs: Added new enums for NET_2_0 and added 
814         [Obsolete] to some existing elements.
815         * EventLogPermissionAttribute.cs: Added missing validation to property
816         MachineName. Fixed changes for NET_2_0.
817         * PerformanceCounterPermission.cs: Fixed initialization (TagNames and
818         PermissionAccessType).
819         * PerformanceCounterPermissionAccess.cs: Added new enums for NET_2_0
820         and added [Obsolete] to some existing elements.
821         * PerformanceCounterPermissionAttribute.cs: Added missing validations
822         to properties (Path, MachineName). Fixed changes for NET_2_0.
823
824 2004-09-07  Dick Porter  <dick@ximian.com>
825
826         * Process.cs: Throw documented exceptions when getting stdin,
827         stdout or stderr and they haven't been redirected.  Check that
828         CreatePipe didn't fail, throw exceptions if it did.  Close
829         redirected streams when the process is disposed, rather than rely
830         on the GC disposing them later.  Makes timeline much happier,
831         because it could run out of file descriptors between GC
832         collections.
833
834 2004-09-06  Dick Porter  <dick@ximian.com>
835
836         * Process.cs: Make Dispose() actually dispose things.
837
838 2004-06-24  Atsushi Enomoto  <atsushi@ximian.com>
839
840         * Process.cs : quick fix for UseShellExecute=false on windows. See
841           the code comment.
842
843 2004-06-17  Lluis Sanchez Gual  <lluis@ximian.com>
844
845         * Process.cs: Added missing check in HasExited property.
846
847 2004-05-20  Gert Driesen (drieseng@users.sourceforge.net)
848
849         * EventLogPermissionAttribute.cs:
850         * PerformanceCounterPermissionAttribute.cs: adjust AllowMultiple
851         and Inherited to match .NET
852
853 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
854
855         * Process.cs: separate the command and the arguments when calling
856         Start_internal.
857
858 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
859
860         * Process.cs: redirecting I/O is not permitted if UseShellExecute is
861         true. Also throw if FileName is null.
862
863 2004-04-06  Lluis Sanchez Gual  <lluis@ximian.com>
864
865         * DiagnosticsConfigurationHandler.cs: If initializeData is provided,
866         use the constructor that only takes one string as parameter to
867         construct the listener. The name is set using the Name property, not the
868         constructor.
869         
870         * TextWriterTraceListener.cs: In Write*, do nothing if no writer was 
871         provided.
872
873 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
874
875         * Process.cs: use the ISynchronizeInvoke object to invoke the event.
876         Implemented Close, CloseMainWindow and Kill.
877
878 2004-03-23 Ben Maurer  <bmaurer@users.sourceforge.net>
879
880         * Switch.cs: Don't throw when there is no switches section.
881
882 2004-03-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
883
884         * Process.cs: support EnableRaisingEvents + Exited event.
885
886 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
887
888         * Process.cs: patch by Gert Driesen that fixes WaitForExit when the
889         timeout is int.MaxValue.
890
891 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
892
893         * Process.cs: added environment variables setting support and also
894         send useShellExecute to the runtime.
895
896         * ProcessStartInfo.cs: support EnvironmentVariables.  MS uses
897         StringDictionary, which turns keys into lowercase. We don't do that.
898
899 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
900
901         * Process.cs: ExitCode and ExitTime check that the process is finished.
902
903 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
904
905         * Process.cs: if there's an error when starting the process, the 'pid'
906         field contains the GetLastError code. Use that for the Win32Exception.
907
908 2003-12-06  Martin Baulig  <martin@ximian.com>
909
910         * DefaultTraceListener: Don't use `where' in variable names.
911
912 2003-11-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
913
914         * ICollectData.cs: Fixed signature
915
916 2003-11-12  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
917
918         * ICollectData.cs: Added missing attribute
919
920 2003-07-27  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
921
922         * SRDescriptionAttribute.cs: Moved to System directory
923
924 2003-07-21  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
925
926         * EventLog.cs: Implementation handling
927         * EventLogImpl.cs: Added, contains an platform independent empty implementation
928         for EventLog
929
930 2003-07-18  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
931
932         * AlphabeticalEnumConverter.cs: Added
933         * EventLogEntry.cs: Implemented
934         * EventLogPermissionEntryCollection.cs: Fixed signature and implementation of indexer
935         * EventLogTraceListener.cs: Fixed signature
936         * PerformanceCounter.cs: Added missing attribute
937         * PerformanceCounterType.cs: Added missing attribute
938         * SRDescriptionAttribute.cs: Added and implemented
939
940 2003-07-17  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
941
942         * CounterCreationData.cs:
943         * EventLog.cs:
944         * EventLogEntry.cs:
945         * PerformanceCounter.cs:
946         * Process.cs:
947         * ProcessModule.cs:
948         * ProcessStartInfo.cs:
949         * ProcessThread.cs: Reworked attributes based on the new Consts scheme
950
951 2003-07-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
952
953         * PerformanceCounterCategory.cs: Fixed signatures
954
955 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
956
957         * PerformanceCounter.cs: Implemented or implementation added
958
959 2003-07-13  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
960
961         * DiagnosticsConfigurationHandler.cs: Removed a never used variable
962         * EventLog.cs: Small update to prevent a warning
963         * EventLogPermission.cs: Implemented or implementation added
964         * EventLogPermissionAttribute.cs: Implemented or implementation added
965         * EventLogPermissionEntry.cs: Implemented or implementation added
966         * EventLogPermissionEntryCollection.cs: Implemented or implementation added
967         * EventLogTraceListener.cs: Implemented or implementation added
968         * PerformanceCounterManager.cs: Implemented or implementation added
969         * PerformanceCounterInstaller.cs: Made internal
970         * PerformanceCounterCategory.cs: Implemented few members
971         * PerformanceCounterPermission.cs: Implemented or implementation added
972         * PerformanceCounterPermissionAttribute.cs: Implemented or implementation added
973         * PerformanceCounterPermissionEntry.cs: Implemented or implementation added
974         * PerformanceCounterPermissionEntryCollection.cs: Implemented or implementation added
975         
976 2003-07-07  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
977
978         * EventLog.cs: Removed unneccesary attribute according to corecompare
979         * EventLogEntry.cs: Removed unneccesary attribute according to corecompare
980         * Process.cs: Removed unneccesary attributes according to corecompare, added attribute
981         * ProcessModule.cs: Removed unneccesary attribute according to corecompare
982         * ProcessStartInfo.cs: Removed unneccesary attribute according to corecompare
983         * ProcessThread.cs: Removed unneccesary attribute according to corecompare, fixed signature
984
985 2003-07-05  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
986
987         * InstanceDataCollectionCollection.cs: Corrected wrong signature
988         * EventLog.cs: Missing attributes added, redirected some class members
989         * EventLogEntry.cs: Missing attributes added
990         * EventLogInstaller.cs: Made internal
991         
992 2003-07-02  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
993
994         * CounterCreationData.cs: Added missing attributes
995         * CounterSample.cs: Implemented missing rest, fixed signature
996         * CounterSampleCalculator.cs: Added private constructor, redirected function
997         * Process.cs: Added attributes, added event mechanism
998         * ProcessModule.cs: Added missing attributes
999         * ProcessModuleCollection.cs: Redone using the already inherited-from ArrayList. Simplifies this a LOT
1000         * ProcessStartInfo.cs: Added missing attributes, moved internal fields to the begining of the file, restyling
1001         * ProcessThread.cs: Added missing attributes, added pseudo constructor
1002         * ProcessThreadCollection.cs: Implemented
1003         * PerformanceCounterPermission.cs: Fixed typo in class name
1004         * PerformanceCounterPermissionAccess.cs: Added attributes, fixed wrong member
1005         
1006 2003-03-19  Dick Porter  <dick@ximian.com>
1007
1008         * Process.cs: Implement HasExited, fixes bug 39267
1009
1010 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1011
1012         * Process.cs: throw an exception when the executable cannot be found.
1013
1014 2002-12-20  Jonathan Pryor <jonpryor@vt.edu>
1015         * DiagnosticsConfigurationHandler.cs: 
1016           - Don't assume that optional attributes are always present
1017           - <assert/> can't have any child nodes
1018           - Change in semantics: if the attribute isn't present,
1019             GetAttribute() returns null, not "".  This allows us to
1020             differentiate between an attribute not being present and an
1021             attribute with an empty value.
1022           - Translate exceptions if a TraceListener type is invalid
1023
1024 2002-12-19  Jonathan Pryor <jonpryor@vt.edu>
1025         * TraceListenerCollection.cs: IndentLevel and IndentSize shouldn't be 
1026           hardcoded; they should be set to whatever TraceImpl is using (which
1027           in turn may have been set by the .config file, so we should get the
1028           user-specified values in added listeners).
1029         * TraceListener.cs: Make sure that indents are initially written.  This 
1030           allows code that uses Trace.Indent() before a Trace.WriteLine() to be 
1031           indented properly.
1032         * TraceImpl.cs: provide a static constructor to explicitly specify the
1033           ordering of initialization, in particular the ordering of
1034           TraceImpl.Listeners and the reading of the .config file (by
1035           accessing DiagnosticsConfiguration.Settings).  This (hopefully)
1036           ensures that the Listeners collection is initialized before the
1037           .config file is read in, as the DiagnosticsConfigurationHandler will
1038           directly modify the listeners collection.
1039           The DiagnosticsConfigurationHandler assumes this so that it can
1040           <add/> and <remove/> trace listeners and set the logfile for the
1041           DefaultTraceListener.
1042
1043
1044 2002-12-18  Jonathan Pryor <jonpryor@vt.edu>
1045         * BooleanSwitch.cs: Complete re-write.  It works now.
1046         * DefaultTraceListener.cs:
1047           - Use `const' strings, so I don't worry about copy/paste errors
1048           - Give `AssertUiEnabled' an actual backing member
1049         * DiagnosticsConfigurationHandler.cs: To avoid race conditions, let the
1050           configuration handler set .config-specified properties on
1051           DefaultTraceListener (AssertUiEnabled, LogFileName) and TraceImpl
1052           (AutoFlush, IndentSize).
1053         * Switch.cs: Near complete re-write.  Actually works, and is (should be)
1054           comformant with .NET behavior.  Changed member names because they
1055           were confusing me.  (Yes, that doesn't say much about my memory.)
1056         * TextWriterTraceListener.cs: Append text to already existing files,
1057           don't overwrite them.
1058         * TraceImpl.cs:
1059           - Added private destructor, to ensure no instances are created.
1060           - Move members declarations to be closer to each other.
1061         * TraceSwitch.cs: Complete re-write.  It works now.
1062
1063 2002-12-17  Jonathan Pryor <jonpryor@vt.edu>
1064         * DiagnosticsConfigurationHandler.cs: Implement so that .config files
1065         support <system.diagnostics> sections.
1066
1067 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1068
1069         * DefaultTraceListener.cs: now OutputDebugStringW is called from an
1070         internal call (update your runtime!). No more warnings in linux.
1071
1072 2002-10-31  Dick Porter  <dick@ximian.com>
1073
1074         * Process.cs: MonoIO methods now have an error parameter
1075
1076 2002-10-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1077
1078         * DefaultTraceListener.cs: changed OutputDebugString to
1079         OutputDebugStringW (no more warnings under windows). Also a few style
1080         fixes.
1081
1082 2002-10-23  Dick Porter  <dick@ximian.com>
1083
1084         * Process.cs: Redirected standard input needs to have AutoFlush set
1085
1086 2002-09-27  Dick Porter  <dick@ximian.com>
1087
1088         * Process.cs: Implemented {get_,set_}{Min,Max}WorkingSet,
1089         ProcessName, GetProcessById, GetProcesses, GetProcessesByName.
1090         Pass the working directory to Start.  Pass the program and args in
1091         one string to be used with the second arg of CreateProcess, so it
1092         will search the path.
1093
1094 2002-09-19  Nick Drochak <ndrochak@gol.com>
1095
1096         * TraceImpl.cs: Remove debug prints
1097
1098 2002-09-19  Nick Drochak <ndrochak@gol.com>
1099
1100         * TraceListenerCollection.cs: Set Indet level and size to default 
1101         values.  The values from TraceImpl might have been changed.
1102
1103 2002-08-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1104
1105         * Process.cs:
1106         * TextWriterTraceListener.cs: IDisposable fixes.
1107
1108 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1109
1110         * Process.cs: class status based fixes.
1111
1112 2002-07-20  Dick Porter  <dick@ximian.com>
1113
1114         * Process.cs: Implement file handle redirection
1115
1116 2002-07-13  Jonathan Pryor <jonpryor@vt.edu>
1117         * CounterCreationData.cs: Implemented
1118         * CounterCreationDataCollection.cs: Implemented
1119         * CounterSample.cs: Stubbed Out
1120         * CounterSampleCalculator.cs: Stubbed Out
1121         * InstanceData.cs: Implemented
1122         * InstanceDataCollection.cs: Implemented
1123         * InstanceDataCollectionCollection.cs: Implemented
1124         * MonitoringDescriptionAttribute.cs: Implemented
1125         * PerformanceCounter.cs: Stubbed Out
1126         * PerformanceCounterCategory.cs: Stubbed Out
1127         * PerformanceCounterInstaller.cs: Stubbed Out
1128         * PerformanceCounterManager.cs: Stubbed Out
1129         * PerformanceCounterPermission.cs: Stubbed Out
1130         * PerformanceCounterPermissionAccess.cs: Implemented
1131         * PerformanceCounterPermissionAttribute.cs: Stubbed Out
1132         * PerformanceCounterPermissionEntry.cs: Stubbed Out
1133         * PerformanceCounterPermissionEntryCollection.cs: Implemented
1134         * PerformanceCounterType.cs: Implemented
1135
1136
1137 2002-06-25  Dick Porter  <dick@ximian.com>
1138
1139         * Process.cs: Process forking and waiting, and some support functions
1140
1141         * ProcessStartInfo.cs: Implemented the bits needed for basic
1142         Process forking
1143
1144         * ProcessModule.cs: Implemented
1145
1146         * ProcessModuleCollection.cs: Mostly implemented
1147
1148         * FileVersionInfo.cs: Implemented
1149
1150 2002-06-16  Jonathan Pryor <jonpryor@vt.edu>
1151         * ICollectData.cs: Implemented
1152         * TraceImpl.cs: Setting IndentLevel, IndentSize should change the
1153                 corresponding properties on all current TraceListeners.
1154                 Also, to answer the FIXME message: Yes, the properties in TraceListener
1155                 need to be [ThreadStatic] as well.
1156         * TraceListenerCollection.cs: When adding a TraceListener, the TraceListener
1157                 should have its properties set to the current TraceImpl property values.
1158         * TraceListener.cs: Make indentSize, lndentLevel [ThreadStatic].
1159
1160 2002-06-09  Jonathan Pryor <jonpryor@vt.edu>
1161         * EntryWrittenEventArgs.cs: Implemented
1162         * EntryWrittenEventHandler.cs: Implemented
1163         * EventLog.cs: Stubbed out
1164         * EventLogEntry.cs: Stubbed out
1165         * EventLogEntryCOllection.cs: Implemented.
1166         * EventLogEntryType.cs: Implemented
1167         * EventLogInstaller.cs: Stubbed out
1168         * EventLogPermission.cs: Stubbed out
1169         * EventLogPermissionAccess.cs: Implemented
1170         * EventLogPermissionAttribute.cs: Stubbed out
1171         * EventLogPermissionEntry.cs: Stubbed out
1172         * EventLogPermissionEntryCollection.cs: Stubbed out
1173         * EventLogTraceListener.cs: Stubbed out
1174
1175 2002-05-29  Jonathan Pryor <jonpryor@vt.edu>
1176   * DefaultTraceListener.cs: Implemented MONO_TRACE support
1177
1178 2002-05-27  Jonathan Pryor <jonpryor@vt.edu>
1179   * Moved public API documentation for the following files to the
1180     /mcs/docs/apidocs/xml/en/System.Diagnostics directory:
1181     - Debug.cs
1182     - DefaultTraceListener.cs
1183     - DiagnosticsConfigurationHandler.cs
1184     - Switch.cs
1185     - TextWriterTraceListener.cs
1186     - Trace.cs
1187     - TraceLevel.cs
1188     - TraceListener.cs
1189     - TraceListenerCollection.cs
1190     - TraceSwitch.cs
1191
1192 2002-04-10  Jonathan Pryor <jonpryor@vt.edu>
1193
1194         * TraceListenerCollection.cs: Corrected indexer property to provide the
1195                 correct return value and implement the IList indexer property correctly.
1196
1197 2002-04-07  Jonathan Pryor <jonpryor@vt.edu>
1198
1199         * TraceListener.cs: Fix stack overflow bug
1200         * DefaultTraceListener.cs: Implement log file support
1201
1202 2002-04-04  Dick Porter  <dick@ximian.com>
1203
1204         * ThreadWaitReason.cs:
1205         * ThreadState.cs:
1206         * ThreadPriorityLevel.cs:
1207         * ProcessWindowStyle.cs:
1208         * ProcessThreadCollection.cs
1209         * ProcessThread.cs:
1210         * ProcessStartInfo.cs:
1211         * ProcessModuleCollection.cs: Stub out more classes needed for Process
1212
1213 2002-03-31  Dick Porter  <dick@ximian.com>
1214
1215         * Process.cs: 
1216         * ProcessPriorityClass.cs: 
1217         * ProcessModule.cs: 
1218         * FileVersionInfo.cs: Stub out classes needed for Process
1219
1220 2002-03-08  Jonathan Pryor <jonpryor@vt.edu>
1221
1222         * Debug.cs: Clean up (lots of code can be shared with Trace.cs, which 
1223                 is why TraceImpl.cs is introduced), "DEBUG" conditional support
1224         * TraceListener.cs: Proper implementation of Dispose pattern;
1225                 implementatino of non-abstract methods in terms of abstract methods
1226         * TraceListenerCollection.cs: check 'object' types before adding
1227         * TextWriterTraceListener.cs: properly implement Dispose pattern;
1228                 handle NeedIndent and WriteIndent
1229         * Trace.cs: new file; provides Trace functionality, "TRACE" conditional
1230                 support
1231         * DefaultTraceListener.cs: new file; the default trace listener
1232
1233 2002-01-17  Miguel de Icaza  <miguel@ximian.com>
1234         * TraceListenerCollection.cs: Remove Warnings.
1235
1236 2002-01-06  Ravi Pratap  <ravi@ximian.com>
1237         * Switch.cs, TraceListenerCollection.cs : Decorate incomplete bits
1238         with the MonoTODO attribute.
1239
1240 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
1241         * Added Debug.cs to the build.
1242
1243 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
1244         * Added preliminary TraceListenerCollection.cs to the build.
1245
1246 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
1247         * Added TraceListener.cs, TextWriterTraceListener.cs, and
1248         DefaultTraceListener.cs to the build and moved them into the
1249         proper assembly.
1250
1251 2002-01-04  John R. Hicks <angryjohn69@nc.rr.com>
1252         * Added DiagnosticsConfigurationHandler.cs to the build.
1253
1254 2001-09-09  Nick Drochak <ndrochak@gol.com>
1255         * BooleanSwitch.cs: Make this class use it's parent class's features.  Namely, use SwitchSetting
1256         so that we can get OnSwitchSettingChanged() to fire for free.
1257
1258 2001-09-09  Nick Drochak <ndrochak@gol.com>
1259         * ChangeLog: added this file
1260         * Switch.cs: call OnSwitchSettingChanged() when the switch setting is, yes you gessed it, changed.