package org.ovirt.engine.core.common.eventqueue;
import java.util.concurrent.Callable;
public interface EventQueue {
/**
* The following method should allow to submit an asynchronous event
* The Event will be submitted to queue and will be executed when after that
* @param event - description of event
* @param callable - a code which should be run
*/
void submitEventAsync(Event event, Callable<EventResult> callable);
/**
* The following method is used in order to submit a synchronous event
* The Event will submitted and a thread will be stuck until event will be
* executed or aborted
* @param event - description of event
* @param callable - a code which should be run
*/
EventResult submitEventSync(Event event, Callable<EventResult> callable);
}