package org.radargun.traits;
import org.radargun.Operation;
@Trait(doc = "Allows to listen to updates for specified query.")
public interface ContinuousQuery {
public static final String TRAIT = ContinuousQuery.class.getSimpleName();
public static final String QUERY = TRAIT + ".Query";
public static final String LISTENERS = TRAIT + ".ContinuousQueryListeners";
public final Operation ENTRY_JOINED = Operation.register(TRAIT + ".EntryJoined");
public final Operation ENTRY_LEFT = Operation.register(TRAIT + ".EntryLeft");
ListenerReference createContinuousQuery(String cacheName, Query query, Listener cqListener);
void removeContinuousQuery(String cacheName, ListenerReference listenerReference);
interface Listener<K, V> {
void onEntryJoined(K key, V value);
void onEntryLeft(K key);
}
/**
* Marker interface for implementation-specific data.
*/
interface ListenerReference {}
}