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
- BooleanStorage.cs
- _FtpDataStream.cs
- ThumbAutomationPeer.cs
- TimeoutValidationAttribute.cs
- DynamicQueryableWrapper.cs
- SlipBehavior.cs
- SqlFunctionAttribute.cs
- HostingEnvironment.cs
- Hash.cs
- ProvideValueServiceProvider.cs
- BuildProvider.cs
- ExpandCollapsePattern.cs
- Baml2006KnownTypes.cs
- Signature.cs
- BaseDataList.cs
- XmlSchemaExternal.cs
- Misc.cs
- ErrorFormatter.cs
- CustomTypeDescriptor.cs
- GridEntryCollection.cs
- RoutedEventArgs.cs
- XmlChoiceIdentifierAttribute.cs
- PixelFormat.cs
- RepeaterItemCollection.cs
- BStrWrapper.cs
- LayoutExceptionEventArgs.cs
- QuaternionAnimationUsingKeyFrames.cs
- SqlUdtInfo.cs
- TextRunProperties.cs
- AspNetCompatibilityRequirementsAttribute.cs
- RowUpdatedEventArgs.cs
- PermissionSetTriple.cs
- DataGridViewButtonColumn.cs
- TableSectionStyle.cs
- MailMessage.cs
- ResourceSet.cs
- UndoManager.cs
- IconHelper.cs
- AdapterUtil.cs
- WebEventTraceProvider.cs
- IERequestCache.cs
- WebPartCancelEventArgs.cs
- FontInfo.cs
- InfoCardMasterKey.cs
- AdapterUtil.cs
- DirectionalLight.cs
- ResXResourceWriter.cs
- Package.cs
- MarkerProperties.cs
- StylusPointPropertyInfoDefaults.cs
- ByteViewer.cs
- Directory.cs
- TreeNodeConverter.cs
- DataGridViewCellFormattingEventArgs.cs
- Stack.cs
- EpmCustomContentSerializer.cs
- HtmlContainerControl.cs
- FixedSOMElement.cs
- NameValueCollection.cs
- FilterInvalidBodyAccessException.cs
- SettingsProperty.cs
- HtmlInputText.cs
- BooleanSwitch.cs
- WorkflowOwnershipException.cs
- Stopwatch.cs
- HitTestFilterBehavior.cs
- DataBoundControlHelper.cs
- GradientStopCollection.cs
- BitmapEffectDrawingContent.cs
- BinHexDecoder.cs
- SqlPersonalizationProvider.cs
- BrushConverter.cs
- DataGridClipboardHelper.cs
- SessionPageStatePersister.cs
- IArgumentProvider.cs
- EnumerableCollectionView.cs
- XPathSingletonIterator.cs
- ByteKeyFrameCollection.cs
- LogPolicy.cs
- EnumBuilder.cs
- FocusChangedEventArgs.cs
- CanonicalFontFamilyReference.cs
- GridViewActionList.cs
- UsernameTokenFactoryCredential.cs
- PropertyTabChangedEvent.cs
- RegisteredDisposeScript.cs
- UntypedNullExpression.cs
- CodeTypeMember.cs
- Style.cs
- TargetParameterCountException.cs
- CodeArrayCreateExpression.cs
- MetadataPropertyAttribute.cs
- followingquery.cs
- InvalidFilterCriteriaException.cs
- BooleanAnimationBase.cs
- DispatcherTimer.cs
- DirectoryLocalQuery.cs
- MimeTypePropertyAttribute.cs
- ImageListUtils.cs
- TextTrailingWordEllipsis.cs