Package org.apache.storm.trident.spout

# Interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>

All Known Implementing Classes:
  `KafkaTridentTransactionalSpoutEmitter`

Enclosing interface:
  IPartitionedTridentSpout<PartitionsT,PartitionT extends ISpoutPartition,T>

public static interface IPartitionedTridentSpout.Emitter<PartitionsT,PartitionT extends ISpoutPartition,X>

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  `Map<PartitionT,X>`
  `emitBatchNew(TransactionAttempt tx, TridentCollector collector, Set<PartitionT> partitions, Map<PartitionT,X> lastPartitionMetaMap)`
  Emit a batch of tuples for the partitions that's never been emitted before.
  `List<PartitionT>`
  `getOrderedPartitions(PartitionsT allPartitionInfo)`
  Sorts given partition info to produce an ordered list of partitions.
  `default List<PartitionT>`
  `getPartitionsForTask(int taskId, int numTasks, List<PartitionT> allPartitionInfoSorted)`
  Get the partitions assigned to the given task.
  `void`
  `reEmitPartitionBatch(TransactionAttempt tx, TridentCollector collector, PartitionT partition, X partitionMeta)`
  Emit a batch of tuples for a partition/transaction that has been emitted before, using the metadata created when it was first emitted.
  `void`
  `refreshPartitions(List<PartitionT> partitionResponsibilities)`
  This method is called when this task is responsible for a new set of partitions.

- ## Method Details

  - ### getOrderedPartitions

    List<PartitionT> getOrderedPartitions(PartitionsT allPartitionInfo)
    Sorts given partition info to produce an ordered list of partitions.
    Parameters:
      `allPartitionInfo` - The partition info for all partitions being processed by all spout tasks
    Returns:
      sorted list of partitions being processed by all the tasks. The ordering must be consistent for all tasks.

  - ### emitBatchNew

    Map<PartitionT,X> emitBatchNew(TransactionAttempt tx, TridentCollector collector, Set<PartitionT> partitions, Map<PartitionT,X> lastPartitionMetaMap)
    Emit a batch of tuples for the partitions that's never been emitted before. Return the metadata that can be used to reconstruct this partition/batch in the future.

  - ### refreshPartitions

    void refreshPartitions(List<PartitionT> partitionResponsibilities)
    This method is called when this task is responsible for a new set of partitions. Should be used to manage things like connections to brokers.

  - ### reEmitPartitionBatch

    void reEmitPartitionBatch(TransactionAttempt tx, TridentCollector collector, PartitionT partition, X partitionMeta)
    Emit a batch of tuples for a partition/transaction that has been emitted before, using the metadata created when it was first emitted.

  - ### getPartitionsForTask

    default List<PartitionT> getPartitionsForTask(int taskId, int numTasks, List<PartitionT> allPartitionInfoSorted)
    Get the partitions assigned to the given task.
    Parameters:
      `taskId` - The id of the task
      `numTasks` - The number of tasks for the spout
      `allPartitionInfoSorted` - The partition info of all partitions being processed by all spout tasks, sorted according to `getOrderedPartitions(java.lang.Object)`
    Returns:
      The list of partitions that are to be processed by the task with `taskId`

  - ### close

    void close()