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
- XmlSignificantWhitespace.cs
- FileSystemWatcher.cs
- TemplateKeyConverter.cs
- Facet.cs
- IIS7UserPrincipal.cs
- TargetControlTypeAttribute.cs
- SetStoryboardSpeedRatio.cs
- JsonUriDataContract.cs
- ServiceDescription.cs
- DataListCommandEventArgs.cs
- FixedSOMLineCollection.cs
- HostingEnvironmentException.cs
- SvcMapFileSerializer.cs
- Utils.cs
- ConsoleCancelEventArgs.cs
- XmlReturnWriter.cs
- UnicastIPAddressInformationCollection.cs
- HttpCachePolicyBase.cs
- ConfigurationElement.cs
- Propagator.Evaluator.cs
- DataAdapter.cs
- CmsUtils.cs
- SendAgentStatusRequest.cs
- ControlEvent.cs
- PageAsyncTask.cs
- DescendantBaseQuery.cs
- ListDataBindEventArgs.cs
- BasicKeyConstraint.cs
- SerializationStore.cs
- ConstraintConverter.cs
- PageCopyCount.cs
- WS2007FederationHttpBinding.cs
- TaskFormBase.cs
- HttpBrowserCapabilitiesWrapper.cs
- NamespaceQuery.cs
- ListControl.cs
- OdbcInfoMessageEvent.cs
- SqlPersonalizationProvider.cs
- ListSourceHelper.cs
- CalloutQueueItem.cs
- HttpDateParse.cs
- ProfilePropertySettings.cs
- Image.cs
- UserMapPath.cs
- ActiveXHelper.cs
- WebPartUserCapability.cs
- CodeSnippetTypeMember.cs
- SizeChangedInfo.cs
- StringFreezingAttribute.cs
- GZipDecoder.cs
- TableItemPattern.cs
- ApplyImportsAction.cs
- LaxModeSecurityHeaderElementInferenceEngine.cs
- ChannelServices.cs
- ConfigXmlWhitespace.cs
- SectionUpdates.cs
- SqlConnection.cs
- DataGridViewCellLinkedList.cs
- EraserBehavior.cs
- InProcStateClientManager.cs
- Helper.cs
- UnmanagedMarshal.cs
- DesignTimeParseData.cs
- WrappedIUnknown.cs
- HatchBrush.cs
- ListViewItemEventArgs.cs
- Descriptor.cs
- EqualityComparer.cs
- Stack.cs
- ToolStripContextMenu.cs
- SqlClientPermission.cs
- SoundPlayerAction.cs
- ValueQuery.cs
- PriorityRange.cs
- TypeUtil.cs
- LongAverageAggregationOperator.cs
- FullTextLine.cs
- HijriCalendar.cs
- Win32NamedPipes.cs
- WebPartZoneCollection.cs
- PasswordBox.cs
- WebPartHelpVerb.cs
- MembershipPasswordException.cs
- PointLight.cs
- DrawItemEvent.cs
- PolyQuadraticBezierSegment.cs
- SamlAssertionKeyIdentifierClause.cs
- ServiceControllerDesigner.cs
- UnsafeNativeMethods.cs
- MultiPageTextView.cs
- ChangeConflicts.cs
- SQLMoney.cs
- XmlArrayItemAttributes.cs
- SrgsSubset.cs
- OracleTransaction.cs
- DelegateBodyWriter.cs
- SystemIcmpV4Statistics.cs
- Knowncolors.cs
- SetterTriggerConditionValueConverter.cs
- RegexWriter.cs