Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Services / Monitoring / system / Diagnosticts / EventLogEntryCollection.cs / 1 / EventLogEntryCollection.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
namespace System.Diagnostics {
using System.Text;
using System;
using System.Collections;
//Consider, V2, [....]: Is there a way to implement Contains
//and IndexOf, can we live withouth this part of the ReadOnly
//collection pattern?
///
/// [To be supplied.]
///
public class EventLogEntryCollection : ICollection {
private EventLog log;
internal EventLogEntryCollection(EventLog log) {
this.log = log;
}
///
///
/// Gets the number of entries in the event log
///
///
public int Count {
get {
return log.EntryCount;
}
}
///
///
/// Gets an entry in
/// the event log, based on an index starting at 0.
///
///
public virtual EventLogEntry this[int index] {
get {
return log.GetEntryAt(index);
}
}
///
/// [To be supplied.]
///
public void CopyTo(EventLogEntry[] entries, int index) {
((ICollection)this).CopyTo((Array)entries, index);
}
///
///
///
public IEnumerator GetEnumerator() {
return new EntriesEnumerator(this);
}
internal EventLogEntry GetEntryAtNoThrow(int index) {
return log.GetEntryAtNoThrow(index);
}
///
bool ICollection.IsSynchronized {
get {
return false;
}
}
///
/// ICollection private interface implementation.
///
///
object ICollection.SyncRoot {
get {
return this;
}
}
///
/// ICollection private interface implementation.
///
///
void ICollection.CopyTo(Array array, int index) {
EventLogEntry[] entries = log.GetAllEntries();
Array.Copy(entries, 0, array, index, entries.Length);
}
///
///
/// Holds an System.Diagnostics.EventLog.EventLogEntryCollection that
/// consists of the entries in an event
/// log.
///
///
private class EntriesEnumerator : IEnumerator {
private EventLogEntryCollection entries;
private int num = -1;
private EventLogEntry cachedEntry = null;
internal EntriesEnumerator(EventLogEntryCollection entries) {
this.entries = entries;
}
///
///
/// Gets the entry at the current position.
///
///
public object Current {
get {
if (cachedEntry == null)
throw new InvalidOperationException(SR.GetString(SR.NoCurrentEntry));
return cachedEntry;
}
}
///
///
/// Advances the enumerator to the next entry in the event log.
///
///
public bool MoveNext() {
num++;
cachedEntry = entries.GetEntryAtNoThrow(num);
return cachedEntry != null;
}
///
///
/// Resets the state of the enumeration.
///
///
public void Reset() {
num = -1;
}
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FileRecordSequence.cs
- CompModSwitches.cs
- PixelShader.cs
- Exceptions.cs
- ResourceManager.cs
- _Events.cs
- RoutedEvent.cs
- Array.cs
- CorrelationQueryBehavior.cs
- ComNativeDescriptor.cs
- XmlCodeExporter.cs
- ApplicationDirectoryMembershipCondition.cs
- PiiTraceSource.cs
- Transform3DCollection.cs
- WebPartPersonalization.cs
- DescendentsWalker.cs
- WCFBuildProvider.cs
- ServiceReference.cs
- CompressedStack.cs
- CodeDefaultValueExpression.cs
- DefaultBindingPropertyAttribute.cs
- EdmError.cs
- KerberosTicketHashIdentifierClause.cs
- AccessDataSource.cs
- StreamInfo.cs
- ChangeDirector.cs
- CommonDialog.cs
- NetworkCredential.cs
- PrintPageEvent.cs
- XmlHierarchicalEnumerable.cs
- ReflectTypeDescriptionProvider.cs
- XsdBuildProvider.cs
- XmlStringTable.cs
- _NegoStream.cs
- ApplicationContext.cs
- ExpressionBuilderCollection.cs
- MessageContractExporter.cs
- XPathSelectionIterator.cs
- MemoryFailPoint.cs
- MultidimensionalArrayItemReference.cs
- hwndwrapper.cs
- DoubleLinkList.cs
- CodeNamespace.cs
- ModulesEntry.cs
- EntityViewGenerationConstants.cs
- GenericXmlSecurityToken.cs
- ProviderMetadataCachedInformation.cs
- ExceptionUtil.cs
- StringReader.cs
- ToolStripItemImageRenderEventArgs.cs
- PageThemeParser.cs
- XmlSchemaSet.cs
- DbException.cs
- Stacktrace.cs
- DataServiceProcessingPipeline.cs
- AsyncSerializedWorker.cs
- future.cs
- RelatedView.cs
- Comparer.cs
- MessagePropertyVariants.cs
- HttpDictionary.cs
- HandledMouseEvent.cs
- HttpResponseHeader.cs
- ConsoleCancelEventArgs.cs
- SendKeys.cs
- HttpRuntime.cs
- ActivityInterfaces.cs
- LongSumAggregationOperator.cs
- PageParser.cs
- Soap12FormatExtensions.cs
- Events.cs
- BevelBitmapEffect.cs
- Matrix3DValueSerializer.cs
- ResourcePart.cs
- Transform.cs
- WebPartAuthorizationEventArgs.cs
- XmlElementList.cs
- ProtocolImporter.cs
- MissingMethodException.cs
- ActiveXHelper.cs
- DateTimeOffset.cs
- StickyNote.cs
- DataGridViewControlCollection.cs
- StrokeCollectionConverter.cs
- FixedFindEngine.cs
- NameObjectCollectionBase.cs
- CodeAccessPermission.cs
- DesignerResources.cs
- TreeChangeInfo.cs
- KerberosSecurityTokenProvider.cs
- PerformanceCounterPermissionEntry.cs
- Double.cs
- HttpFormatExtensions.cs
- TextElementCollection.cs
- HandleRef.cs
- PageSettings.cs
- IntranetCredentialPolicy.cs
- NotCondition.cs
- StreamUpgradeInitiator.cs
- WebBrowserPermission.cs