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
- ItemDragEvent.cs
- GenericsInstances.cs
- ExpressionConverter.cs
- PassportPrincipal.cs
- Attributes.cs
- TraceHandler.cs
- SortExpressionBuilder.cs
- SQLByteStorage.cs
- ProxyManager.cs
- VisemeEventArgs.cs
- StorageMappingItemCollection.cs
- TemplatePagerField.cs
- BaseResourcesBuildProvider.cs
- TracingConnectionInitiator.cs
- SoapExtensionReflector.cs
- ParallelDesigner.cs
- ResourceManager.cs
- XmlUrlEditor.cs
- EndPoint.cs
- DetailsViewInsertedEventArgs.cs
- DoubleAnimation.cs
- ConfigXmlComment.cs
- RequestCachePolicyConverter.cs
- DataGridViewLinkCell.cs
- NativeMethods.cs
- Privilege.cs
- XmlCharCheckingWriter.cs
- PeerMessageDispatcher.cs
- IntegerValidatorAttribute.cs
- AnnotationResourceChangedEventArgs.cs
- TextEditorTables.cs
- CatalogPartCollection.cs
- SystemException.cs
- StandardBindingImporter.cs
- SapiAttributeParser.cs
- HyperlinkAutomationPeer.cs
- FileDataSourceCache.cs
- EdmMember.cs
- XmlIncludeAttribute.cs
- FontStretches.cs
- CustomTokenProvider.cs
- DataPagerCommandEventArgs.cs
- ExpressionBuilder.cs
- MetadataCache.cs
- PreservationFileReader.cs
- TraceUtility.cs
- XsltContext.cs
- CompressEmulationStream.cs
- DesignerGenericWebPart.cs
- GlobalAllocSafeHandle.cs
- HotSpotCollection.cs
- BoundingRectTracker.cs
- FixedSOMImage.cs
- AsyncInvokeOperation.cs
- FileEnumerator.cs
- SByteStorage.cs
- SafeProcessHandle.cs
- PersonalizationProviderCollection.cs
- IndentTextWriter.cs
- TextLine.cs
- ParameterElementCollection.cs
- LookupNode.cs
- XmlLinkedNode.cs
- EntityCommandCompilationException.cs
- XmlBufferReader.cs
- ComplexTypeEmitter.cs
- SafeMemoryMappedFileHandle.cs
- IgnoreFileBuildProvider.cs
- UnaryQueryOperator.cs
- HostingEnvironmentSection.cs
- Point.cs
- EnumUnknown.cs
- DatatypeImplementation.cs
- DateTimeStorage.cs
- regiisutil.cs
- CommentEmitter.cs
- DesignerValidationSummaryAdapter.cs
- SecurityManager.cs
- StringUtil.cs
- ButtonChrome.cs
- FileDataSourceCache.cs
- GlobalProxySelection.cs
- LogicalCallContext.cs
- AstTree.cs
- ConstraintStruct.cs
- SmtpNetworkElement.cs
- AuthenticationSection.cs
- KerberosSecurityTokenProvider.cs
- MenuBase.cs
- FamilyCollection.cs
- ArgIterator.cs
- ButtonColumn.cs
- ArgumentNullException.cs
- CacheEntry.cs
- Misc.cs
- DragDeltaEventArgs.cs
- AspNetHostingPermission.cs
- TransformerConfigurationWizardBase.cs
- AstNode.cs
- ToolStripSplitButton.cs