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
- DbQueryCommandTree.cs
- DetailsViewDeletedEventArgs.cs
- WebZone.cs
- RenderDataDrawingContext.cs
- SqlUtil.cs
- ObjectManager.cs
- IPPacketInformation.cs
- UIElementPropertyUndoUnit.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- Visitors.cs
- GetPageCompletedEventArgs.cs
- XMLUtil.cs
- SmtpFailedRecipientException.cs
- Journal.cs
- GridViewUpdateEventArgs.cs
- TextTreeNode.cs
- NotFiniteNumberException.cs
- DbProviderFactories.cs
- X509CertificateInitiatorClientCredential.cs
- DataConnectionHelper.cs
- TriState.cs
- Int32KeyFrameCollection.cs
- WsatTransactionInfo.cs
- MessageQueueAccessControlEntry.cs
- RuntimeConfigLKG.cs
- WriteTimeStream.cs
- MatrixTransform.cs
- RSAPKCS1SignatureDeformatter.cs
- InternalTypeHelper.cs
- HTTP_SERVICE_CONFIG_URLACL_KEY.cs
- BindingSource.cs
- PbrsForward.cs
- XmlSchemaSimpleContentRestriction.cs
- XmlValidatingReader.cs
- DesignerCatalogPartChrome.cs
- TemplateControl.cs
- InfocardChannelParameter.cs
- SchemaImporterExtensionsSection.cs
- AssemblyBuilder.cs
- ComponentChangedEvent.cs
- SqlProfileProvider.cs
- Utils.cs
- PageCopyCount.cs
- WmlLinkAdapter.cs
- ListBindingConverter.cs
- formatter.cs
- BamlWriter.cs
- Logging.cs
- DataServiceOperationContext.cs
- MouseButton.cs
- XmlRawWriterWrapper.cs
- DataSourceXmlSerializationAttribute.cs
- Message.cs
- ResolveNameEventArgs.cs
- IsolatedStoragePermission.cs
- ExpandableObjectConverter.cs
- Table.cs
- StandardCommands.cs
- CryptoConfig.cs
- ClientSettingsProvider.cs
- ResourceDescriptionAttribute.cs
- HttpRawResponse.cs
- ScopeCompiler.cs
- XMLSchema.cs
- InnerItemCollectionView.cs
- PointLightBase.cs
- XmlC14NWriter.cs
- Marshal.cs
- SafeLibraryHandle.cs
- IdentitySection.cs
- DataFormat.cs
- ConnectionStringsExpressionBuilder.cs
- UseLicense.cs
- OdbcErrorCollection.cs
- Vector3D.cs
- InputLangChangeRequestEvent.cs
- SemanticBasicElement.cs
- SQLMembershipProvider.cs
- NativeMethods.cs
- SR.cs
- NativeMethods.cs
- WindowsGraphics2.cs
- MultiByteCodec.cs
- _ConnectOverlappedAsyncResult.cs
- ConnectionPointGlyph.cs
- UrlUtility.cs
- DataGridViewCheckBoxCell.cs
- XmlWriterTraceListener.cs
- Msec.cs
- SqlDataRecord.cs
- DataControlPagerLinkButton.cs
- Pair.cs
- ObjectViewFactory.cs
- BasicKeyConstraint.cs
- ImageCollectionEditor.cs
- WebMessageEncodingElement.cs
- ContainsRowNumberChecker.cs
- OleDbPermission.cs
- diagnosticsswitches.cs
- XmlReturnWriter.cs