Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// 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;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MouseGesture.cs
- WebBrowserProgressChangedEventHandler.cs
- SchemaTableColumn.cs
- safemediahandle.cs
- ArcSegment.cs
- AppLevelCompilationSectionCache.cs
- ServiceObjectContainer.cs
- SendSecurityHeader.cs
- SafeTokenHandle.cs
- XmlSchemaObjectTable.cs
- CssTextWriter.cs
- ZoneButton.cs
- ClientTargetSection.cs
- XmlSchemaSimpleTypeRestriction.cs
- MailAddress.cs
- PeerContact.cs
- RoutedEventArgs.cs
- ListViewGroup.cs
- GPRECTF.cs
- DebugHandleTracker.cs
- CompressionTransform.cs
- InputGestureCollection.cs
- Int16Converter.cs
- Base64Stream.cs
- SelectionListComponentEditor.cs
- XamlDesignerSerializationManager.cs
- _ContextAwareResult.cs
- RoutedEvent.cs
- Rotation3D.cs
- _SslState.cs
- Axis.cs
- Substitution.cs
- BCryptSafeHandles.cs
- XmlAutoDetectWriter.cs
- PackWebRequest.cs
- ControlParameter.cs
- WebPartEventArgs.cs
- DataObject.cs
- SQLInt16Storage.cs
- FrugalList.cs
- RbTree.cs
- DataGridViewTextBoxCell.cs
- LinqDataSourceInsertEventArgs.cs
- IdnElement.cs
- DataGridViewTopRowAccessibleObject.cs
- TemplateControlCodeDomTreeGenerator.cs
- RegionData.cs
- DocumentViewerAutomationPeer.cs
- ImmutableCollection.cs
- ExpandCollapseProviderWrapper.cs
- XhtmlBasicControlAdapter.cs
- MonthCalendar.cs
- Timeline.cs
- _AutoWebProxyScriptWrapper.cs
- GetKeyedHashRequest.cs
- JsonEncodingStreamWrapper.cs
- XslCompiledTransform.cs
- BypassElement.cs
- Rectangle.cs
- FilterEventArgs.cs
- namescope.cs
- WindowManager.cs
- LeaseManager.cs
- CustomPopupPlacement.cs
- WebPartCatalogCloseVerb.cs
- BinaryHeap.cs
- TypeNameConverter.cs
- CellParagraph.cs
- RenderTargetBitmap.cs
- NetworkStream.cs
- Button.cs
- ValidationRuleCollection.cs
- ComProxy.cs
- ClaimTypeElement.cs
- SecurityPolicySection.cs
- ImageButton.cs
- ObjectItemNoOpAssemblyLoader.cs
- EventLogEntryCollection.cs
- CollectionViewGroupRoot.cs
- PrtTicket_Base.cs
- StateDesigner.TransitionInfo.cs
- DynamicActionMessageFilter.cs
- TextEndOfParagraph.cs
- HttpListener.cs
- InfocardExtendedInformationEntry.cs
- CodeExporter.cs
- CryptoApi.cs
- ProvidersHelper.cs
- DataGridViewUtilities.cs
- TextRunCacheImp.cs
- XmlTextAttribute.cs
- RuntimeTransactionHandle.cs
- WebZone.cs
- AssemblyUtil.cs
- ReadOnlyDataSource.cs
- Selection.cs
- NavigationProperty.cs
- InputLangChangeEvent.cs
- SmtpReplyReaderFactory.cs
- DifferencingCollection.cs