diff options
author | Sebastien Pouliot <sebastien@ximian.com> | 2004-09-12 02:53:31 +0400 |
---|---|---|
committer | Sebastien Pouliot <sebastien@ximian.com> | 2004-09-12 02:53:31 +0400 |
commit | 48f0d411c5d467689e9835193e0d93254710f95f (patch) | |
tree | a0125aed499cf34c3094fc785cc72b7f3bdfbeb9 /mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs | |
parent | 5377c6290311feffb1859b17b96f350e3e966b69 (diff) |
2004-09-11 Sebastien Pouliot <sebastien@ximian.com>
* EventLogPermission.cs: Completed implementation.
* EventLogPermissionAccess.cs: Fixed enum values.
* EventLogPermissionEntry.cs: Added validation for machine names.
* EventLogPermissionEntryCollection.cs: Added synchronization
of entries with the base permission class.
* PerformanceCounterPermission.cs: Completed implementation.
* PerformanceCounterPermissionAccess.cs: Fixed enum values.
* PerformanceCounterPermissionEntry.cs: Added validations for machine
and category names.
* PerformanceCounterPermissionEntryCollection.cs: Added synchronization
of entries with the base permission class.
svn path=/trunk/mcs/; revision=33762
Diffstat (limited to 'mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs')
-rw-r--r-- | mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs | 40 |
1 files changed, 35 insertions, 5 deletions
diff --git a/mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs b/mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs index 3cc59a1d423..52803403e42 100644 --- a/mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs +++ b/mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs @@ -37,6 +37,8 @@ namespace System.Diagnostics { [Serializable] public sealed class PerformanceCounterPermission : ResourcePermissionBase { + PerformanceCounterPermissionEntryCollection innerCollection; + public PerformanceCounterPermission () { SetUp (); @@ -48,8 +50,8 @@ namespace System.Diagnostics { throw new ArgumentNullException("permissionAccessEntries"); SetUp (); - foreach (PerformanceCounterPermissionEntry entry in permissionAccessEntries) - AddPermissionAccess (entry.CreateResourcePermissionBaseEntry ()); + innerCollection = new PerformanceCounterPermissionEntryCollection (this); + innerCollection.AddRange (permissionAccessEntries); } public PerformanceCounterPermission (PermissionState state) @@ -61,12 +63,18 @@ namespace System.Diagnostics { public PerformanceCounterPermission (PerformanceCounterPermissionAccess permissionAccess, string machineName, string categoryName) { SetUp (); - PerformanceCounterPermissionEntry pcpe = new PerformanceCounterPermissionEntry (permissionAccess, machineName, categoryName); - AddPermissionAccess (pcpe.CreateResourcePermissionBaseEntry ()); + innerCollection = new PerformanceCounterPermissionEntryCollection (this); + innerCollection.Add (new PerformanceCounterPermissionEntry (permissionAccess, machineName, categoryName)); } public PerformanceCounterPermissionEntryCollection PermissionEntries { - get { return new PerformanceCounterPermissionEntryCollection (base.GetPermissionEntries ()); } + get { + if (innerCollection == null) { + // must be here to work with XML deserialization + innerCollection = new PerformanceCounterPermissionEntryCollection (this); + } + return innerCollection; + } } // private stuff @@ -76,6 +84,28 @@ namespace System.Diagnostics { TagNames = new string [2] { "Machine", "Category" }; PermissionAccessType = typeof (PerformanceCounterPermissionAccess); } + + internal ResourcePermissionBaseEntry[] GetEntries () + { + return base.GetPermissionEntries (); + } + + internal void ClearEntries () + { + base.Clear (); + } + + internal void Add (object obj) + { + PerformanceCounterPermissionEntry pcpe = (obj as PerformanceCounterPermissionEntry); + base.AddPermissionAccess (pcpe.CreateResourcePermissionBaseEntry ()); + } + + internal void Remove (object obj) + { + PerformanceCounterPermissionEntry pcpe = (obj as PerformanceCounterPermissionEntry); + base.RemovePermissionAccess (pcpe.CreateResourcePermissionBaseEntry ()); + } } } |