using System;
using System.Collections;
namespace System.Security.AccessControl
{
/// Represents an access control list (ACL) and is the base class for the , , , and classes.
// Token: 0x020004C7 RID: 1223
public abstract class GenericAcl : IEnumerable, ICollection
{
/// Copies each of the current into the specified array.
/// The array into which copies of the objects contained by the current are placed.
/// The zero-based index of where the copying begins.
// Token: 0x06002D7B RID: 11643 RVA: 0x00093B6C File Offset: 0x00091D6C
void ICollection.CopyTo(Array array, int index)
{
this.CopyTo((GenericAce[])array, index);
}
/// Returns a new instance of the class cast as an instance of the interface.
/// A new object, cast as an instance of the interface.
// Token: 0x06002D7C RID: 11644 RVA: 0x00093B7C File Offset: 0x00091D7C
IEnumerator IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}
/// Gets the length, in bytes, of the binary representation of the current object. This length should be used before marshaling the ACL into a binary array with the method.
/// The length, in bytes, of the binary representation of the current object.
// Token: 0x170008EB RID: 2283
// (get) Token: 0x06002D7D RID: 11645
public abstract int BinaryLength { get; }
/// Gets the number of access control entries (ACEs) in the current object.
/// The number of ACEs in the current object.
// Token: 0x170008EC RID: 2284
// (get) Token: 0x06002D7E RID: 11646
public abstract int Count { get; }
/// This property is always set to false. It is implemented only because it is required for the implementation of the interface.
/// Always false.
// Token: 0x170008ED RID: 2285
// (get) Token: 0x06002D7F RID: 11647 RVA: 0x00093B84 File Offset: 0x00091D84
public bool IsSynchronized
{
get
{
return false;
}
}
/// Gets or sets the at the specified index.
/// The at the specified index.
/// The zero-based index of the to get or set.
// Token: 0x170008EE RID: 2286
public abstract GenericAce this[int index] { get; set; }
/// Gets the revision level of the .
/// A byte value that specifies the revision level of the .
// Token: 0x170008EF RID: 2287
// (get) Token: 0x06002D82 RID: 11650
public abstract byte Revision { get; }
/// This property always returns null. It is implemented only because it is required for the implementation of the interface.
/// Always returns null.
// Token: 0x170008F0 RID: 2288
// (get) Token: 0x06002D83 RID: 11651 RVA: 0x00093B88 File Offset: 0x00091D88
public object SyncRoot
{
get
{
return this;
}
}
/// Copies each of the current into the specified array.
/// The array into which copies of the objects contained by the current are placed.
/// The zero-based index of where the copying begins.
// Token: 0x06002D84 RID: 11652 RVA: 0x00093B8C File Offset: 0x00091D8C
public void CopyTo(GenericAce[] array, int index)
{
if (array == null)
{
throw new ArgumentNullException("array");
}
if (index < 0 || array.Length - index < this.Count)
{
throw new ArgumentOutOfRangeException("index", "Index must be non-negative integer and must not exceed array length - count");
}
for (int i = 0; i < this.Count; i++)
{
array[i + index] = this[i];
}
}
/// Marshals the contents of the object into the specified byte array beginning at the specified offset.
/// The byte array into which the contents of the is marshaled.
/// The offset at which to start marshaling.
///
/// is negative or too high to allow the entire to be copied into .
// Token: 0x06002D85 RID: 11653
public abstract void GetBinaryForm(byte[] binaryForm, int offset);
/// Returns a new instance of the class.
/// The that this method returns.
// Token: 0x06002D86 RID: 11654 RVA: 0x00093BF4 File Offset: 0x00091DF4
public AceEnumerator GetEnumerator()
{
return new AceEnumerator(this);
}
/// The revision level of the current . This value is returned by the property for Access Control Lists (ACLs) that are not associated with Directory Services objects.
// Token: 0x040011FC RID: 4604
public static readonly byte AclRevision = 2;
/// The revision level of the current . This value is returned by the property for Access Control Lists (ACLs) that are associated with Directory Services objects.
// Token: 0x040011FD RID: 4605
public static readonly byte AclRevisionDS = 4;
/// The maximum allowed binary length of a object.
// Token: 0x040011FE RID: 4606
public static readonly int MaxBinaryLength = 65536;
}
}