Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ImageList.cs
- AsyncOperationContext.cs
- CompilationRelaxations.cs
- DataGridViewCellStyleConverter.cs
- Timer.cs
- DataGridItemAutomationPeer.cs
- UnsafeNativeMethodsCLR.cs
- SqlBulkCopyColumnMapping.cs
- TypeNameConverter.cs
- ExpressionBuilder.cs
- ResourceSet.cs
- JournalEntryListConverter.cs
- SqlRewriteScalarSubqueries.cs
- WindowsTab.cs
- GrowingArray.cs
- SByte.cs
- DynamicValueConverter.cs
- XmlName.cs
- HandlerBase.cs
- PropertyRecord.cs
- BaseComponentEditor.cs
- AssertSection.cs
- XmlCharType.cs
- MessageBox.cs
- RenameRuleObjectDialog.Designer.cs
- StaticContext.cs
- TransformerTypeCollection.cs
- Zone.cs
- CookieParameter.cs
- ProfileManager.cs
- DataGridViewImageCell.cs
- PackWebRequest.cs
- LocatorGroup.cs
- EventItfInfo.cs
- XamlSerializerUtil.cs
- EntityKeyElement.cs
- WpfXamlMember.cs
- Content.cs
- Transactions.cs
- SecurityToken.cs
- Ray3DHitTestResult.cs
- XmlNamespaceManager.cs
- PointAnimationBase.cs
- SmiEventSink.cs
- FixedSOMTextRun.cs
- TableLayoutRowStyleCollection.cs
- SuppressIldasmAttribute.cs
- NativeMethods.cs
- HwndSource.cs
- DataBindingCollection.cs
- CodeFieldReferenceExpression.cs
- CryptoConfig.cs
- TCPListener.cs
- DoubleAnimationClockResource.cs
- WorkflowControlClient.cs
- XmlText.cs
- EncoderNLS.cs
- AstTree.cs
- WindowsListViewItemCheckBox.cs
- SvcMapFile.cs
- DataGridClipboardCellContent.cs
- DependencyPropertyValueSerializer.cs
- OleDbFactory.cs
- SubMenuStyle.cs
- InheritanceRules.cs
- UpdateProgress.cs
- FixedSOMTextRun.cs
- ReflectEventDescriptor.cs
- DesignerAutoFormat.cs
- InstallerTypeAttribute.cs
- FileDataSourceCache.cs
- SspiSecurityToken.cs
- ListViewSortEventArgs.cs
- IPAddressCollection.cs
- UnsafeNativeMethods.cs
- DynamicUpdateCommand.cs
- DbException.cs
- AdornedElementPlaceholder.cs
- TextReader.cs
- StreamProxy.cs
- DataBindingsDialog.cs
- ComboBoxRenderer.cs
- messageonlyhwndwrapper.cs
- DBCommandBuilder.cs
- InkCanvasSelection.cs
- SiteMapSection.cs
- KeyValuePairs.cs
- PeerMaintainer.cs
- SplitContainer.cs
- RuleValidation.cs
- TagPrefixCollection.cs
- Mutex.cs
- IndentedWriter.cs
- EnvironmentPermission.cs
- MetadataArtifactLoaderComposite.cs
- WindowsGraphicsCacheManager.cs
- System.Data.OracleClient_BID.cs
- Page.cs
- PKCS1MaskGenerationMethod.cs
- LabelDesigner.cs