Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Pouliot <sebastien@ximian.com>2004-09-12 02:53:31 +0400
committerSebastien Pouliot <sebastien@ximian.com>2004-09-12 02:53:31 +0400
commit48f0d411c5d467689e9835193e0d93254710f95f (patch)
treea0125aed499cf34c3094fc785cc72b7f3bdfbeb9 /mcs/class/System/System.Diagnostics/PerformanceCounterPermission.cs
parent5377c6290311feffb1859b17b96f350e3e966b69 (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.cs40
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 ());
+ }
}
}