Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Collections / Concurrent / Partitioner.cs / 1305376 / Partitioner.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // Partitioner.cs // //[....] // // Represents a particular way of splitting a collection into multiple partitions. // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Threading; namespace System.Collections.Concurrent { ////// Represents a particular manner of splitting a data source into multiple partitions. /// ///Type of the elements in the collection. ////// [HostProtection(Synchronization = true, ExternalThreading = true)] public abstract class Partitioner/// Inheritors of ///must adhere to the following rules: /// ///
///- ///
should throw a /// if the requested partition count is less than or /// equal to zero. - ///
should always return a number of enumerables equal to the requested /// partition count. If the partitioner runs out of data and cannot create as many partitions as /// requested, an empty enumerator should be returned for each of the remaining partitions. If this rule /// is not followed, consumers of the implementation may throw a . - ///
and /// should never return null. If null is returned, a consumer of the implementation may throw a /// . - ///
and should always return /// partitions that can fully and uniquely enumerate the input data source. All of the data and only the /// data contained in the input source should be enumerated, with no duplication that was not already in /// the input, unless specifically required by the particular partitioner's design. If this is not /// followed, the output ordering may be scrambled. { /// /// Partitions the underlying collection into the given number of partitions. /// /// The number of partitions to create. ///A list containing public abstract IListenumerators. > GetPartitions(int partitionCount); /// /// Gets whether additional partitions can be created dynamically. /// ////// true if the ///can create partitions dynamically as they are /// requested; false if the can only allocate /// partitions statically. /// /// public virtual bool SupportsDynamicPartitions { get { return false; } } ////// If a derived class does not override and implement ///, /// should return false. The value of should not vary over the lifetime of this instance. /// /// Creates an object that can partition the underlying collection into a variable number of /// partitions. /// ////// ////// The returned object implements the ///interface. Calling GetEnumerator on the /// object creates another partition over the sequence. ////// The ///method is only supported if the /// property returns true. /// An object that can create partitions over the underlying data source. ///Dynamic partitioning is not supported by this /// partitioner. public virtual IEnumerableGetDynamicPartitions() { throw new NotSupportedException(Environment.GetResourceString("Partitioner_DynamicPartitionsNotSupported")); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ // // Partitioner.cs // // [....] // // Represents a particular way of splitting a collection into multiple partitions. // // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- using System; using System.Collections.Generic; using System.Security.Permissions; using System.Threading; namespace System.Collections.Concurrent { ////// Represents a particular manner of splitting a data source into multiple partitions. /// ///Type of the elements in the collection. ////// [HostProtection(Synchronization = true, ExternalThreading = true)] public abstract class Partitioner/// Inheritors of ///must adhere to the following rules: /// ///
///- ///
should throw a /// if the requested partition count is less than or /// equal to zero. - ///
should always return a number of enumerables equal to the requested /// partition count. If the partitioner runs out of data and cannot create as many partitions as /// requested, an empty enumerator should be returned for each of the remaining partitions. If this rule /// is not followed, consumers of the implementation may throw a . - ///
and /// should never return null. If null is returned, a consumer of the implementation may throw a /// . - ///
and should always return /// partitions that can fully and uniquely enumerate the input data source. All of the data and only the /// data contained in the input source should be enumerated, with no duplication that was not already in /// the input, unless specifically required by the particular partitioner's design. If this is not /// followed, the output ordering may be scrambled. { /// /// Partitions the underlying collection into the given number of partitions. /// /// The number of partitions to create. ///A list containing public abstract IListenumerators. > GetPartitions(int partitionCount); /// /// Gets whether additional partitions can be created dynamically. /// ////// true if the ///can create partitions dynamically as they are /// requested; false if the can only allocate /// partitions statically. /// /// public virtual bool SupportsDynamicPartitions { get { return false; } } ////// If a derived class does not override and implement ///, /// should return false. The value of should not vary over the lifetime of this instance. /// /// Creates an object that can partition the underlying collection into a variable number of /// partitions. /// ////// ////// The returned object implements the ///interface. Calling GetEnumerator on the /// object creates another partition over the sequence. ////// The ///method is only supported if the /// property returns true. /// An object that can create partitions over the underlying data source. ///Dynamic partitioning is not supported by this /// partitioner. public virtual IEnumerableGetDynamicPartitions() { throw new NotSupportedException(Environment.GetResourceString("Partitioner_DynamicPartitionsNotSupported")); } } } // 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
- HttpApplication.cs
- LocationUpdates.cs
- RadioButton.cs
- MediaCommands.cs
- ToolStripProgressBar.cs
- HuffModule.cs
- ComEventsInfo.cs
- UserThread.cs
- ToolboxComponentsCreatedEventArgs.cs
- WorkflowMarkupSerializationProvider.cs
- ClientEventManager.cs
- Animatable.cs
- FlowLayout.cs
- DBConcurrencyException.cs
- XmlSchemaGroupRef.cs
- SoundPlayerAction.cs
- Label.cs
- SqlDataSourceCache.cs
- CodeThrowExceptionStatement.cs
- AssemblyUtil.cs
- RightsManagementEncryptedStream.cs
- TdsParserSafeHandles.cs
- GridSplitter.cs
- SQLDecimalStorage.cs
- ValidationManager.cs
- SchemaSetCompiler.cs
- ToolStripItemEventArgs.cs
- UnsafePeerToPeerMethods.cs
- ContextMenu.cs
- RenamedEventArgs.cs
- MailWriter.cs
- BuildProviderUtils.cs
- HttpListenerException.cs
- PresentationAppDomainManager.cs
- DesignTimeTemplateParser.cs
- httpapplicationstate.cs
- ObjectListCommand.cs
- EventHandlersDesigner.cs
- SafeEventHandle.cs
- FlowPanelDesigner.cs
- XPathNode.cs
- RepeaterItem.cs
- OperationAbortedException.cs
- ValidationErrorCollection.cs
- StructuredTypeEmitter.cs
- TextEditorMouse.cs
- MatrixTransform3D.cs
- QuaternionRotation3D.cs
- WindowsGraphics2.cs
- MdiWindowListItemConverter.cs
- DllHostInitializer.cs
- OleDbCommand.cs
- Activity.cs
- CmsUtils.cs
- RadioButtonPopupAdapter.cs
- UnmanagedMemoryStreamWrapper.cs
- Variable.cs
- ColorDialog.cs
- MaterialCollection.cs
- XmlHierarchicalDataSourceView.cs
- EncoderFallback.cs
- Internal.cs
- SchemaComplexType.cs
- DeclarativeCatalogPart.cs
- MethodCallExpression.cs
- RegistryExceptionHelper.cs
- MimeWriter.cs
- CompiledQuery.cs
- UInt16Converter.cs
- FormsAuthentication.cs
- InternalBase.cs
- FastEncoder.cs
- TypefaceMap.cs
- HandleExceptionArgs.cs
- ExtendLockAsyncResult.cs
- RegisteredScript.cs
- XmlCharType.cs
- CalendarSelectionChangedEventArgs.cs
- TableLayout.cs
- XmlSchemaFacet.cs
- COM2ColorConverter.cs
- PropertyMetadata.cs
- EnumerationRangeValidationUtil.cs
- AsymmetricKeyExchangeFormatter.cs
- TdsParser.cs
- AccessDataSource.cs
- InternalCache.cs
- SqlAggregateChecker.cs
- XmlStreamStore.cs
- StringDictionary.cs
- Point3DAnimationBase.cs
- StubHelpers.cs
- RepeaterItemCollection.cs
- TextProviderWrapper.cs
- ResourceManager.cs
- FixedDocument.cs
- HandleInitializationContext.cs
- ProtectedConfigurationProviderCollection.cs
- InputScopeAttribute.cs
- CharEnumerator.cs