package org.infinispan.query.api.continuous; import java.util.List; import java.util.Map; import org.infinispan.query.dsl.Query; /** * A container of continuous query listeners for a cache. * <p> * Implementations are not expected to be threadsafe. * * @author anistor@redhat.com * @since 8.2 */ public interface ContinuousQuery<K, V> { /** * Add a listener for a continuous query. * * @param queryString the query * @param listener the listener */ <C> void addContinuousQueryListener(String queryString, ContinuousQueryListener<K, C> listener); /** * Add a listener for a continuous query. * * @param queryString the query * @param namedParameters the query parameters * @param listener the listener */ <C> void addContinuousQueryListener(String queryString, Map<String, Object> namedParameters, ContinuousQueryListener<K, C> listener); /** * Add a listener for a continuous query. * * @param query the query object * @param listener the listener */ <C> void addContinuousQueryListener(Query query, ContinuousQueryListener<K, C> listener); /** * Remove a continuous query listener. * * @param listener the listener to remove */ void removeContinuousQueryListener(ContinuousQueryListener<K, ?> listener); /** * Get the list of currently registered listeners. */ List<ContinuousQueryListener<K, ?>> getListeners(); /** * Unregisters all listeners. */ void removeAllListeners(); }