package ninja.ugly.prevail.event.factory;
/**
* A marker interface for all EventFactories.
* <p>
* An EventFactory is used by Chunk operations to obtain events to be dispatched throughout the
* operation lifecycle. Those events are then dispatched using an EventDispatcher registered on
* the Chunk.
* <p>
* Commonly EventFactories will provide events describing the start and end of an operation, perhaps
* so that feedback may be given on a UI about the duration of the operation. The 'end' event may
* also contain the result of the Chunk operation. Any exceptions occuring during the Chunk operation
* may also be returned as events. Some EventFactories may also choose to dispatch events describing
* the progress of any chunk operation.
*
* @param <K> The type of key on the Chunk operation
* @param <V> The type of value on the Chunk operation, or Object for delete operations.
*/
public interface EventFactory<K, V> {
// Marker interface
}