Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / QueryOperators / QueryOperatorEnumerator.cs / 1305376 / QueryOperatorEnumerator.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // QueryOperatorEnumerator.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections; using System.Collections.Generic; using System.Diagnostics.Contracts; namespace System.Linq.Parallel { ////// A common enumerator type that unifies all query operator enumerators. /// ////// internal abstract class QueryOperatorEnumerator { // Moves the position of the enumerator forward by one, and simultaneously returns // the (new) current element and key. If empty, false is returned. internal abstract bool MoveNext(ref TElement currentElement, ref TKey currentKey); // Standard implementation of the disposable pattern. public void Dispose() { Dispose(true); } protected virtual void Dispose(bool disposing) { // This is a no-op by default. Subclasses can override. } internal virtual void Reset() { // This is a no-op by default. Subclasses can override. } //------------------------------------------------------------------------------------ // A simple way to turn a query operator enumerator into a "classic" one. // internal IEnumerator AsClassicEnumerator() { return new QueryOperatorClassicEnumerator(this); } class QueryOperatorClassicEnumerator : IEnumerator { private QueryOperatorEnumerator m_operatorEnumerator; private TElement m_current; internal QueryOperatorClassicEnumerator(QueryOperatorEnumerator operatorEnumerator) { Contract.Assert(operatorEnumerator != null); m_operatorEnumerator = operatorEnumerator; } public bool MoveNext() { TKey keyUnused = default(TKey); return m_operatorEnumerator.MoveNext(ref m_current, ref keyUnused); } public TElement Current { get { return m_current; } } object IEnumerator.Current { get { return m_current; } } public void Dispose() { m_operatorEnumerator.Dispose(); m_operatorEnumerator = null; } public void Reset() { m_operatorEnumerator.Reset(); } } } } // 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
- StringValueConverter.cs
- _DigestClient.cs
- ButtonBase.cs
- DiscoveryEndpoint.cs
- ToolBarTray.cs
- TrimSurroundingWhitespaceAttribute.cs
- SecurityException.cs
- PatternMatcher.cs
- InfocardChannelParameter.cs
- BasicHttpSecurity.cs
- ICollection.cs
- LinkArea.cs
- filewebrequest.cs
- TableColumn.cs
- AttributeAction.cs
- CompilerErrorCollection.cs
- Ref.cs
- SqlCaseSimplifier.cs
- CroppedBitmap.cs
- TemplateBindingExtension.cs
- SponsorHelper.cs
- FileClassifier.cs
- MetabaseSettingsIis7.cs
- JsonDataContract.cs
- ToRequest.cs
- FontUnitConverter.cs
- ImageSourceValueSerializer.cs
- _NativeSSPI.cs
- UriScheme.cs
- RenderCapability.cs
- SymbolMethod.cs
- RegexCompiler.cs
- CompensationDesigner.cs
- ScrollPatternIdentifiers.cs
- XmlSchemaInclude.cs
- XmlSchemaAny.cs
- DecoderReplacementFallback.cs
- BasicHttpMessageSecurity.cs
- Serializer.cs
- SQLBytes.cs
- GatewayDefinition.cs
- HtmlInputImage.cs
- FormViewUpdatedEventArgs.cs
- AnnotationResourceCollection.cs
- XmlArrayAttribute.cs
- CollectionDataContract.cs
- PhoneCallDesigner.cs
- MetabaseSettings.cs
- ISessionStateStore.cs
- ResolveRequestResponseAsyncResult.cs
- SoapExtensionReflector.cs
- Positioning.cs
- SimpleApplicationHost.cs
- ActiveXContainer.cs
- TextEditorLists.cs
- PartitionedStreamMerger.cs
- LinkButton.cs
- CapiNative.cs
- ServiceDocumentFormatter.cs
- XmlName.cs
- SelectionRange.cs
- InitializationEventAttribute.cs
- RemotingService.cs
- DocumentGridPage.cs
- FormViewCommandEventArgs.cs
- DbDeleteCommandTree.cs
- updateconfighost.cs
- Size3D.cs
- KnownColorTable.cs
- PtsContext.cs
- FixedElement.cs
- StringDictionaryEditor.cs
- StreamWithDictionary.cs
- WMIInterop.cs
- EnumerableRowCollection.cs
- HttpWriter.cs
- ObjectReferenceStack.cs
- AlignmentYValidation.cs
- AutoGeneratedFieldProperties.cs
- WebPartsPersonalization.cs
- TaskDesigner.cs
- DeferredElementTreeState.cs
- SystemIPGlobalStatistics.cs
- Converter.cs
- FormatterConverter.cs
- RolePrincipal.cs
- JsonEncodingStreamWrapper.cs
- followingsibling.cs
- SelfIssuedAuthRSACryptoProvider.cs
- EventHandlersStore.cs
- BinaryConverter.cs
- SmtpNetworkElement.cs
- XmlBinaryReader.cs
- TableCellsCollectionEditor.cs
- UserControl.cs
- RoleBoolean.cs
- ApplicationInterop.cs
- GroupBox.cs
- QfeChecker.cs
- CompleteWizardStep.cs