Interface DistributionState

All Known Subinterfaces:
MutableDistributionState
All Known Implementing Classes:
DbDistributionState

public interface DistributionState
  • 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 pending
      partition - the id of the partition for which the distribution might be pending
      Returns:
      true if the specific pending distribution exists, otherwise false.
    • getCommandDistributionRecord

      CommandDistributionRecord getCommandDistributionRecord(long distributionKey, int partition)
      Returns the CommandDistributionRecord for the given distribution key. This method takes a partition id. This is only used to set the partition property in the CommandDistributionRecord. 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 distribution
      partition - the partition to distribute to
      Returns:
      an new instance of the CommandDistributionRecord
    • foreachPendingDistribution

      void foreachPendingDistribution(DistributionState.PendingDistributionVisitor visitor)
      Visits each persisted pending distribution, providing both the key of that distribution and the CommandDistributionRecord.

      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