Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / System / Linq / Parallel / QueryOperators / Options / OrderingQueryOperator.cs / 1305376 / OrderingQueryOperator.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // OrderingQueryOperator.cs // //[....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections.Generic; using System.Threading; namespace System.Linq.Parallel { ////// Represents operators AsOrdered and AsUnordered. In the current implementation, it /// simply turns on preservation globally in the query. /// ///internal sealed class OrderingQueryOperator : QueryOperator { // Turns on order (AsOrdered) or turns off order (AsUnordered) private bool m_orderOn; private QueryOperator m_child; private OrdinalIndexState m_ordinalIndexState; public OrderingQueryOperator(QueryOperator child, bool orderOn) : base(orderOn, child.SpecifiedQuerySettings) { m_child = child; m_ordinalIndexState = m_child.OrdinalIndexState; m_orderOn = orderOn; } internal override QueryResults Open(QuerySettings settings, bool preferStriping) { return m_child.Open(settings, preferStriping); } internal override IEnumerator GetEnumerator(ParallelMergeOptions? mergeOptions, bool suppressOrderPreservation) { ScanQueryOperator childAsScan = m_child as ScanQueryOperator ; if (childAsScan != null) { return childAsScan.Data.GetEnumerator(); } return base.GetEnumerator(mergeOptions, suppressOrderPreservation); } //---------------------------------------------------------------------------------------- // Returns an enumerable that represents the query executing sequentially. // internal override IEnumerable AsSequentialQuery(CancellationToken token) { return m_child.AsSequentialQuery(token); } //--------------------------------------------------------------------------------------- // Whether this operator performs a premature merge. // internal override bool LimitsParallelism { get { return m_child.LimitsParallelism; } } internal override OrdinalIndexState OrdinalIndexState { get { return m_ordinalIndexState; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // OrderingQueryOperator.cs // // [....] // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System.Collections.Generic; using System.Threading; namespace System.Linq.Parallel { ////// Represents operators AsOrdered and AsUnordered. In the current implementation, it /// simply turns on preservation globally in the query. /// ///internal sealed class OrderingQueryOperator : QueryOperator { // Turns on order (AsOrdered) or turns off order (AsUnordered) private bool m_orderOn; private QueryOperator m_child; private OrdinalIndexState m_ordinalIndexState; public OrderingQueryOperator(QueryOperator child, bool orderOn) : base(orderOn, child.SpecifiedQuerySettings) { m_child = child; m_ordinalIndexState = m_child.OrdinalIndexState; m_orderOn = orderOn; } internal override QueryResults Open(QuerySettings settings, bool preferStriping) { return m_child.Open(settings, preferStriping); } internal override IEnumerator GetEnumerator(ParallelMergeOptions? mergeOptions, bool suppressOrderPreservation) { ScanQueryOperator childAsScan = m_child as ScanQueryOperator ; if (childAsScan != null) { return childAsScan.Data.GetEnumerator(); } return base.GetEnumerator(mergeOptions, suppressOrderPreservation); } //---------------------------------------------------------------------------------------- // Returns an enumerable that represents the query executing sequentially. // internal override IEnumerable AsSequentialQuery(CancellationToken token) { return m_child.AsSequentialQuery(token); } //--------------------------------------------------------------------------------------- // Whether this operator performs a premature merge. // internal override bool LimitsParallelism { get { return m_child.LimitsParallelism; } } internal override OrdinalIndexState OrdinalIndexState { get { return m_ordinalIndexState; } } } } // 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
- SqlFlattener.cs
- XDeferredAxisSource.cs
- RegistryDataKey.cs
- ModuleBuilder.cs
- TwoPhaseCommit.cs
- Parser.cs
- NavigationPropertyEmitter.cs
- RemoteWebConfigurationHostServer.cs
- Italic.cs
- Calendar.cs
- AccessDataSource.cs
- PropertyMap.cs
- DiagnosticsConfigurationHandler.cs
- TokenBasedSet.cs
- PropertyGridView.cs
- HwndAppCommandInputProvider.cs
- ZipIOBlockManager.cs
- HtmlTableRowCollection.cs
- DSACryptoServiceProvider.cs
- ApplicationInfo.cs
- RequestQueryParser.cs
- SendingRequestEventArgs.cs
- WebEventTraceProvider.cs
- BadImageFormatException.cs
- DbDataAdapter.cs
- CLSCompliantAttribute.cs
- SiteMapDataSourceView.cs
- CoTaskMemHandle.cs
- ComponentResourceKeyConverter.cs
- MembershipUser.cs
- GridItem.cs
- ToolStripSettings.cs
- AngleUtil.cs
- SourceFilter.cs
- CodeMethodReturnStatement.cs
- TableLayoutSettings.cs
- SnapLine.cs
- _ServiceNameStore.cs
- WebConfigurationFileMap.cs
- DataControlButton.cs
- BaseTemplateCodeDomTreeGenerator.cs
- SinglePhaseEnlistment.cs
- WindowsContainer.cs
- TextBoxView.cs
- _Events.cs
- Context.cs
- WebConfigurationHost.cs
- RequestQueue.cs
- SerTrace.cs
- FormatConvertedBitmap.cs
- CalendarDay.cs
- _ListenerRequestStream.cs
- ClientTarget.cs
- BuildTopDownAttribute.cs
- FactoryId.cs
- InteropEnvironment.cs
- EUCJPEncoding.cs
- Rules.cs
- LinqDataSourceDeleteEventArgs.cs
- AtomEntry.cs
- GridViewDeletedEventArgs.cs
- SafeSecurityHandles.cs
- XmlSerializerAssemblyAttribute.cs
- TimeStampChecker.cs
- EmptyReadOnlyDictionaryInternal.cs
- StreamGeometryContext.cs
- ImpersonateTokenRef.cs
- GridViewUpdateEventArgs.cs
- FrameAutomationPeer.cs
- LinqDataSourceDeleteEventArgs.cs
- ControlIdConverter.cs
- RawStylusInputCustomData.cs
- DesignerUtility.cs
- StackOverflowException.cs
- ContextStaticAttribute.cs
- StringComparer.cs
- CountAggregationOperator.cs
- AppModelKnownContentFactory.cs
- _PooledStream.cs
- UnsafeNativeMethods.cs
- PageContentCollection.cs
- TextElementEditingBehaviorAttribute.cs
- SizeChangedEventArgs.cs
- XmlILAnnotation.cs
- StyleCollection.cs
- WebPartZoneBase.cs
- Size.cs
- SqlDataSourceFilteringEventArgs.cs
- TextEditorMouse.cs
- arabicshape.cs
- InstanceKeyCompleteException.cs
- RuntimeWrappedException.cs
- ReferenceConverter.cs
- DSACryptoServiceProvider.cs
- Matrix3D.cs
- LostFocusEventManager.cs
- SecureStringHasher.cs
- ObjectDisposedException.cs
- OleServicesContext.cs
- ZeroOpNode.cs