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
- Parsers.cs
- CharUnicodeInfo.cs
- GenericEnumerator.cs
- FirstMatchCodeGroup.cs
- TreeViewEvent.cs
- Attributes.cs
- IndexedString.cs
- PagedControl.cs
- PeerTransportListenAddressConverter.cs
- EntityDataSourceViewSchema.cs
- SvcMapFileSerializer.cs
- NavigationFailedEventArgs.cs
- RSAOAEPKeyExchangeDeformatter.cs
- PublisherMembershipCondition.cs
- CollectionConverter.cs
- BindingMAnagerBase.cs
- FrameworkElement.cs
- TimeSpanStorage.cs
- UTF32Encoding.cs
- IntSecurity.cs
- RegexCompilationInfo.cs
- PersianCalendar.cs
- EntityContainerEmitter.cs
- IRCollection.cs
- EnterpriseServicesHelper.cs
- HwndSourceKeyboardInputSite.cs
- DbParameterCollectionHelper.cs
- CellIdBoolean.cs
- IRCollection.cs
- PackageFilter.cs
- SkipQueryOptionExpression.cs
- SafeCryptoHandles.cs
- ToolTipAutomationPeer.cs
- RewritingSimplifier.cs
- GZipStream.cs
- UriTemplateClientFormatter.cs
- StrongNamePublicKeyBlob.cs
- SqlConnection.cs
- Attribute.cs
- PostBackTrigger.cs
- ReadOnlyHierarchicalDataSource.cs
- ListBindableAttribute.cs
- ColorAnimation.cs
- CapacityStreamGeometryContext.cs
- DataViewManagerListItemTypeDescriptor.cs
- ResourceIDHelper.cs
- LZCodec.cs
- SynchronousSendBindingElement.cs
- X509CertificateCollection.cs
- SafeNativeMethods.cs
- UnicodeEncoding.cs
- UrlPath.cs
- TextPointerBase.cs
- SqlInternalConnectionTds.cs
- RootBrowserWindow.cs
- AxHost.cs
- WebPartHelpVerb.cs
- SelectionRangeConverter.cs
- TextClipboardData.cs
- PageAsyncTaskManager.cs
- TabRenderer.cs
- WindowsListBox.cs
- DataGridViewCellCancelEventArgs.cs
- InputMethodStateTypeInfo.cs
- TextDataBindingHandler.cs
- prompt.cs
- ConstraintManager.cs
- DataGridToolTip.cs
- List.cs
- CodeTypeConstructor.cs
- securitycriticaldata.cs
- WeakEventManager.cs
- ServiceModelExtensionElement.cs
- UnitySerializationHolder.cs
- ModuleConfigurationInfo.cs
- UnsafeMethods.cs
- KnowledgeBase.cs
- OleDbRowUpdatingEvent.cs
- CultureNotFoundException.cs
- SizeLimitedCache.cs
- DataGridViewColumn.cs
- ControlPager.cs
- BamlResourceSerializer.cs
- ColorTransform.cs
- OpenFileDialog.cs
- DataServiceCollectionOfT.cs
- MethodExpr.cs
- OracleColumn.cs
- SystemUdpStatistics.cs
- EntitySqlQueryCacheKey.cs
- TableLayoutCellPaintEventArgs.cs
- DeviceContext.cs
- XdrBuilder.cs
- AppDomainAttributes.cs
- SqlDeflator.cs
- CodeSnippetCompileUnit.cs
- DesignerLinkAdapter.cs
- SinglePhaseEnlistment.cs
- FieldToken.cs
- DataColumnMapping.cs