Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Monitoring / system / Diagnosticts / EventLogEntryCollection.cs / 1305376 / 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 EventLogInternal log;
internal EventLogEntryCollection(EventLogInternal 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 EventLogInternal log;
internal EventLogEntryCollection(EventLogInternal 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
- BitmapEffectGroup.cs
- DBCommandBuilder.cs
- TransformerInfoCollection.cs
- ContainerUIElement3D.cs
- CompleteWizardStep.cs
- DeviceSpecific.cs
- SmiEventSink_DeferedProcessing.cs
- IgnoreFileBuildProvider.cs
- UnaryExpression.cs
- ForeignConstraint.cs
- UnsafeNativeMethods.cs
- ScrollableControl.cs
- PtsPage.cs
- ItemCheckEvent.cs
- FactoryRecord.cs
- MimeParameter.cs
- EndOfStreamException.cs
- ColumnHeader.cs
- Rule.cs
- BinaryObjectWriter.cs
- AutoScrollExpandMessageFilter.cs
- WebSysDescriptionAttribute.cs
- CacheForPrimitiveTypes.cs
- MessageSecurityOverMsmq.cs
- Activation.cs
- ComAdminWrapper.cs
- ChannelPoolSettingsElement.cs
- HwndSource.cs
- TypeReference.cs
- FreezableDefaultValueFactory.cs
- ToolStripScrollButton.cs
- SimpleTextLine.cs
- DoubleAnimationBase.cs
- LinearKeyFrames.cs
- Item.cs
- StoreUtilities.cs
- LicenseContext.cs
- ComponentChangingEvent.cs
- FileChangeNotifier.cs
- BitmapImage.cs
- GlyphElement.cs
- BehaviorDragDropEventArgs.cs
- DecimalAnimationUsingKeyFrames.cs
- AutoGeneratedField.cs
- TreePrinter.cs
- EventProviderWriter.cs
- SerializationObjectManager.cs
- TemplateXamlTreeBuilder.cs
- DataTemplateSelector.cs
- HostAdapter.cs
- PropertyItem.cs
- newinstructionaction.cs
- PageContent.cs
- Transform3DGroup.cs
- PhoneCallDesigner.cs
- PackagingUtilities.cs
- ManagementEventWatcher.cs
- SplitContainerDesigner.cs
- EntityContainerRelationshipSet.cs
- FormViewCommandEventArgs.cs
- CollectionTypeElement.cs
- EntityRecordInfo.cs
- EncodingInfo.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- ProfileBuildProvider.cs
- Timeline.cs
- DataTableReaderListener.cs
- HtmlInputButton.cs
- Exceptions.cs
- JournalEntry.cs
- DataSourceDesigner.cs
- NameScopePropertyAttribute.cs
- ReadOnlyObservableCollection.cs
- ValidatedControlConverter.cs
- DataGridItem.cs
- OutputCacheSettingsSection.cs
- AliasGenerator.cs
- Utils.cs
- CompressEmulationStream.cs
- PropertyDescriptorComparer.cs
- DynamicObjectAccessor.cs
- ValidatedControlConverter.cs
- newinstructionaction.cs
- JoinElimination.cs
- WhileDesigner.xaml.cs
- XmlSiteMapProvider.cs
- NegatedConstant.cs
- LogicalExpr.cs
- OneToOneMappingSerializer.cs
- StandardCommands.cs
- PackWebResponse.cs
- DynamicValueConverter.cs
- InvokeGenerator.cs
- OptimalBreakSession.cs
- UmAlQuraCalendar.cs
- ElementProxy.cs
- Formatter.cs
- ProfileSettingsCollection.cs
- DbConnectionHelper.cs
- PrintControllerWithStatusDialog.cs