Interface DistributionState
- All Known Subinterfaces:
MutableDistributionState
- All Known Implementing Classes:
DbDistributionState
public interface DistributionState
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interface
This visitor can visit pending distributions ofCommandDistributionRecord
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Visits each persisted pending distribution, providing both the key of that distribution and theCommandDistributionRecord
.getCommandDistributionRecord
(long distributionKey, int partition) Returns theCommandDistributionRecord
for the given distribution key.boolean
hasPendingDistribution
(long distributionKey) Returns whether there are any distributions pending for a given key.boolean
hasPendingDistribution
(long distributionKey, int partition) Returns whether a specific distribution for a specific partition is pending.
-
Method Details
-
hasPendingDistribution
boolean hasPendingDistribution(long distributionKey) Returns whether there are any distributions pending for a given key.- Parameters:
distributionKey
- the key of the distribution- Returns:
- true if there are pending distributions for the given key, otherwise false
-
hasPendingDistribution
boolean hasPendingDistribution(long distributionKey, int partition) Returns whether a specific distribution for a specific partition is pending.- Parameters:
distributionKey
- the key of the distribution that may be pendingpartition
- the id of the partition for which the distribution might be pending- Returns:
true
if the specific pending distribution exists, otherwisefalse
.
-
getCommandDistributionRecord
Returns theCommandDistributionRecord
for the given distribution key. This method takes a partition id. This is only used to set the partition property in theCommandDistributionRecord
. Doing so allows us to return a whole record, without the need to remember setting the partition everytime this method is called.- Parameters:
distributionKey
- the key of the distributionpartition
- the partition to distribute to- Returns:
- an new instance of the
CommandDistributionRecord
-
foreachPendingDistribution
Visits each persisted pending distribution, providing both the key of that distribution and theCommandDistributionRecord
.Note that a new instance of the record is provided for each visit, so the visitor does not have to make a copy when long term access is needed.
- Parameters:
visitor
- Each pending distribution is visited by this visitor
-