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
- TypeDescriptionProvider.cs
- CallTemplateAction.cs
- TextEffectCollection.cs
- ResourceContainer.cs
- Overlapped.cs
- InternalRelationshipCollection.cs
- UniqueIdentifierService.cs
- DispatchChannelSink.cs
- CompositeCollection.cs
- TextFormatter.cs
- DataRowView.cs
- WhiteSpaceTrimStringConverter.cs
- DBConcurrencyException.cs
- AccessorTable.cs
- Transform.cs
- DelegatedStream.cs
- InfoCardServiceInstallComponent.cs
- TextDecorationLocationValidation.cs
- ObjectDataSourceChooseTypePanel.cs
- ToolStripDropDownItem.cs
- OdbcEnvironmentHandle.cs
- ComAdminWrapper.cs
- XPathNode.cs
- SafeArrayRankMismatchException.cs
- ProviderConnectionPointCollection.cs
- CodeAttributeDeclarationCollection.cs
- TextElement.cs
- TemplateControlParser.cs
- ContainerSelectorActiveEvent.cs
- ByteStreamMessageEncoderFactory.cs
- WebPartMenuStyle.cs
- SqlCacheDependencyDatabaseCollection.cs
- GeometryCollection.cs
- CharAnimationBase.cs
- TextFormatter.cs
- RectIndependentAnimationStorage.cs
- OneToOneMappingSerializer.cs
- WorkflowServiceHost.cs
- CodeTypeOfExpression.cs
- XmlExpressionDumper.cs
- TitleStyle.cs
- ActivityExecutionFilter.cs
- SessionChannels.cs
- ResXResourceSet.cs
- DataGridColumnEventArgs.cs
- EnumValidator.cs
- DictionaryEntry.cs
- PenContext.cs
- GraphicsPathIterator.cs
- WebPartZoneCollection.cs
- CreateSequence.cs
- ProcessThread.cs
- GridViewSortEventArgs.cs
- SelectionRangeConverter.cs
- PackageFilter.cs
- Crc32Helper.cs
- FileVersionInfo.cs
- PhonemeEventArgs.cs
- SqlWebEventProvider.cs
- SiteMapNodeItem.cs
- TransformGroup.cs
- AccessDataSourceWizardForm.cs
- ItemType.cs
- SchemaImporterExtensionElementCollection.cs
- XsltInput.cs
- HttpCacheVary.cs
- TreeViewItem.cs
- DataGridColumn.cs
- COM2Properties.cs
- webclient.cs
- NCryptSafeHandles.cs
- DetailsViewInsertedEventArgs.cs
- WmlTextViewAdapter.cs
- Decoder.cs
- XmlTextEncoder.cs
- BitmapEffectInput.cs
- HttpCacheVary.cs
- EntityViewGenerationConstants.cs
- TextEndOfParagraph.cs
- QilLiteral.cs
- Unit.cs
- RecognizerStateChangedEventArgs.cs
- CommandManager.cs
- InkCanvasInnerCanvas.cs
- DataGridHeaderBorder.cs
- XmlArrayItemAttributes.cs
- SelectionPatternIdentifiers.cs
- DynamicPropertyHolder.cs
- TextDecorationUnitValidation.cs
- TemplateControlBuildProvider.cs
- InvalidTimeZoneException.cs
- LookupBindingPropertiesAttribute.cs
- DecoderReplacementFallback.cs
- StandardOleMarshalObject.cs
- XpsS0ValidatingLoader.cs
- hresults.cs
- SqlCommandSet.cs
- ContextMarshalException.cs
- TemplateContainer.cs
- nulltextcontainer.cs