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
- UnmanagedHandle.cs
- ChangeProcessor.cs
- SqlCaseSimplifier.cs
- IdentityModelDictionary.cs
- AccessDataSource.cs
- StrictAndMessageFilter.cs
- DataGridViewCellFormattingEventArgs.cs
- HyperlinkAutomationPeer.cs
- ScrollEvent.cs
- AsyncCompletedEventArgs.cs
- EventData.cs
- HttpApplication.cs
- XmlSignatureProperties.cs
- SqlCrossApplyToCrossJoin.cs
- ScaleTransform.cs
- Matrix.cs
- CacheHelper.cs
- EntitySetBaseCollection.cs
- FixedTextPointer.cs
- SmiContextFactory.cs
- IndexedDataBuffer.cs
- MemberHolder.cs
- DurableOperationAttribute.cs
- HierarchicalDataTemplate.cs
- FlatButtonAppearance.cs
- Matrix3DStack.cs
- XmlSchemaType.cs
- ExpressionWriter.cs
- AutomationProperties.cs
- Attributes.cs
- ComponentCache.cs
- FormsAuthenticationCredentials.cs
- FixedSOMTextRun.cs
- ModulesEntry.cs
- ComPlusTraceRecord.cs
- WebServiceBindingAttribute.cs
- XmlBoundElement.cs
- FrameworkContentElement.cs
- ErasingStroke.cs
- SafeMILHandle.cs
- TextTrailingWordEllipsis.cs
- TranslateTransform3D.cs
- TreeNodeSelectionProcessor.cs
- DemultiplexingClientMessageFormatter.cs
- MULTI_QI.cs
- SEHException.cs
- CompiledXpathExpr.cs
- HtmlImage.cs
- Converter.cs
- LayoutTable.cs
- EpmHelper.cs
- StateRuntime.cs
- DataColumnChangeEvent.cs
- NativeMethods.cs
- WindowsProgressbar.cs
- SmtpFailedRecipientsException.cs
- ByteStack.cs
- SystemTcpStatistics.cs
- ThrowHelper.cs
- ExeConfigurationFileMap.cs
- QuerySettings.cs
- SiteMap.cs
- IssuedTokenClientBehaviorsElement.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- RepeaterItem.cs
- StreamWriter.cs
- Condition.cs
- RectAnimationBase.cs
- TreeNodeEventArgs.cs
- BStrWrapper.cs
- ListDictionaryInternal.cs
- PeerInvitationResponse.cs
- Focus.cs
- ArraySubsetEnumerator.cs
- PrimitiveDataContract.cs
- basemetadatamappingvisitor.cs
- WorkflowControlClient.cs
- WebScriptEnablingBehavior.cs
- QuaternionAnimationBase.cs
- OrCondition.cs
- ArgumentsParser.cs
- FlowLayoutPanel.cs
- CollectionChangeEventArgs.cs
- DoubleCollectionValueSerializer.cs
- AutoGeneratedField.cs
- Membership.cs
- SocketPermission.cs
- DictionaryEntry.cs
- FieldBuilder.cs
- JsonXmlDataContract.cs
- messageonlyhwndwrapper.cs
- HtmlHistory.cs
- Deflater.cs
- OLEDB_Util.cs
- SharedStatics.cs
- RoleManagerModule.cs
- SortDescription.cs
- SettingsContext.cs
- StaticResourceExtension.cs
- TypeResolver.cs