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
- AvTraceFormat.cs
- ColorMap.cs
- CodeTypeDelegate.cs
- x509store.cs
- TiffBitmapDecoder.cs
- DefaultValueConverter.cs
- ProtectedConfigurationProviderCollection.cs
- Image.cs
- SingleResultAttribute.cs
- GeometryDrawing.cs
- XPathParser.cs
- ProfileParameter.cs
- Interlocked.cs
- ListViewSortEventArgs.cs
- CustomDictionarySources.cs
- EntityClassGenerator.cs
- DataServiceException.cs
- InvokeGenerator.cs
- CroppedBitmap.cs
- KerberosRequestorSecurityToken.cs
- FacetChecker.cs
- ToolStripDesignerAvailabilityAttribute.cs
- TreeWalkHelper.cs
- odbcmetadatacollectionnames.cs
- TraceSection.cs
- CollectionViewGroup.cs
- RelationshipConverter.cs
- TextFindEngine.cs
- ThreadAbortException.cs
- StringFunctions.cs
- DiffuseMaterial.cs
- SecurityPermission.cs
- ReadOnlyHierarchicalDataSource.cs
- ColumnTypeConverter.cs
- StyleCollectionEditor.cs
- IdentityModelStringsVersion1.cs
- GridItem.cs
- SoapFaultCodes.cs
- SendActivity.cs
- GroupBoxAutomationPeer.cs
- InvalidContentTypeException.cs
- QueryGenerator.cs
- Convert.cs
- SizeAnimationBase.cs
- InputProcessorProfiles.cs
- AuthenticationModeHelper.cs
- Size3D.cs
- PinnedBufferMemoryStream.cs
- SupportingTokenDuplexChannel.cs
- XmlSchemaSimpleType.cs
- FileDataSourceCache.cs
- HelloMessageCD1.cs
- CanExecuteRoutedEventArgs.cs
- BitmapMetadataBlob.cs
- ReadOnlyAttribute.cs
- SQLInt32.cs
- MonthChangedEventArgs.cs
- RegexFCD.cs
- RegexGroupCollection.cs
- BasicExpressionVisitor.cs
- odbcmetadatacolumnnames.cs
- TargetFrameworkUtil.cs
- Canvas.cs
- Style.cs
- IImplicitResourceProvider.cs
- SecurityKeyIdentifier.cs
- WebSysDescriptionAttribute.cs
- NeutralResourcesLanguageAttribute.cs
- RelatedCurrencyManager.cs
- LineMetrics.cs
- SqlException.cs
- GenericWebPart.cs
- SafeFileMappingHandle.cs
- DataGridCell.cs
- EntityDataSourceStatementEditor.cs
- DecimalConstantAttribute.cs
- PersonalizationStateInfo.cs
- PolyLineSegment.cs
- DataSourceListEditor.cs
- Enum.cs
- Ref.cs
- OperationPerformanceCounters.cs
- WebServiceMethodData.cs
- SmiMetaData.cs
- AutoGeneratedFieldProperties.cs
- HtmlInputRadioButton.cs
- SafeProcessHandle.cs
- APCustomTypeDescriptor.cs
- CustomValidator.cs
- TrustLevel.cs
- XmlSchemaAll.cs
- Attribute.cs
- MultipartIdentifier.cs
- ComponentEvent.cs
- CompensateDesigner.cs
- UriScheme.cs
- httpserverutility.cs
- Point4D.cs
- RewritingValidator.cs
- ToolStripItem.cs