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
- ADMembershipProvider.cs
- ValidatingReaderNodeData.cs
- SettingsProviderCollection.cs
- AnimationTimeline.cs
- WindowsListViewItemStartMenu.cs
- RefreshEventArgs.cs
- sqlser.cs
- ReverseInheritProperty.cs
- Site.cs
- ViewCellSlot.cs
- ColumnResult.cs
- FunctionMappingTranslator.cs
- TreeNodeBinding.cs
- DatatypeImplementation.cs
- MachineKeyConverter.cs
- NumberSubstitution.cs
- UriTemplatePathSegment.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DocumentPage.cs
- ProxyWebPartConnectionCollection.cs
- EdmToObjectNamespaceMap.cs
- Atom10FormatterFactory.cs
- _CommandStream.cs
- VectorConverter.cs
- SendingRequestEventArgs.cs
- GridViewHeaderRowPresenter.cs
- AggregationMinMaxHelpers.cs
- updatecommandorderer.cs
- PropertyConverter.cs
- ToolStripItemRenderEventArgs.cs
- SqlUtils.cs
- TextComposition.cs
- ToolStripItemDesigner.cs
- CollectionDataContract.cs
- SqlNode.cs
- DependencyPropertyKey.cs
- Hashtable.cs
- ExpressionPrefixAttribute.cs
- DesignerSerializationOptionsAttribute.cs
- NavigationFailedEventArgs.cs
- CutCopyPasteHelper.cs
- MetadataCollection.cs
- CardSpacePolicyElement.cs
- FontInfo.cs
- VBCodeProvider.cs
- WmlPageAdapter.cs
- LOSFormatter.cs
- ControlPager.cs
- TypeLibConverter.cs
- CleanUpVirtualizedItemEventArgs.cs
- LinkedResource.cs
- TransformDescriptor.cs
- WpfKnownTypeInvoker.cs
- InfiniteTimeSpanConverter.cs
- ZipIOLocalFileDataDescriptor.cs
- ItemsControl.cs
- InfoCardListRequest.cs
- ElementNotAvailableException.cs
- ConstrainedGroup.cs
- SafeLocalMemHandle.cs
- EntityCommandCompilationException.cs
- SemanticBasicElement.cs
- ConfigUtil.cs
- WebServiceHandlerFactory.cs
- DataControlFieldCollection.cs
- Base64Decoder.cs
- WindowsGrip.cs
- SymbolType.cs
- NullExtension.cs
- LocalizationParserHooks.cs
- InstalledFontCollection.cs
- WebPartCollection.cs
- ItemsChangedEventArgs.cs
- MediaElement.cs
- tabpagecollectioneditor.cs
- PasswordPropertyTextAttribute.cs
- TextWriter.cs
- XmlHierarchicalEnumerable.cs
- InitializationEventAttribute.cs
- ManipulationDeltaEventArgs.cs
- StrokeCollectionConverter.cs
- MimeMultiPart.cs
- _FtpDataStream.cs
- ReachPrintTicketSerializer.cs
- UpdatePanel.cs
- WindowsFormsEditorServiceHelper.cs
- WindowsRichEditRange.cs
- SmtpTransport.cs
- PasswordTextContainer.cs
- RadioButtonFlatAdapter.cs
- DoubleLink.cs
- figurelength.cs
- DecoderReplacementFallback.cs
- SemanticValue.cs
- DrawingContextWalker.cs
- Typeface.cs
- StyleTypedPropertyAttribute.cs
- FixedHighlight.cs
- StructuralCache.cs