use of com.hazelcast.map.impl.querycache.QueryCacheEventService in project hazelcast by hazelcast.
the class AccumulatorConsumerOperation method run.
@Override
public void run() throws Exception {
QueryCacheContext context = getQueryCacheContext();
QueryCacheEventService queryCacheEventService = context.getQueryCacheEventService();
EventPublisherAccumulatorProcessor processor = new EventPublisherAccumulatorProcessor(queryCacheEventService);
AccumulatorHandler<Sequenced> handler = new PublisherAccumulatorHandler(context, processor);
int processed = 0;
do {
Accumulator accumulator = accumulators.poll();
if (accumulator == null) {
break;
}
if (isLocal()) {
// consume the accumulator if only this node is the owner
// of accumulators partition
publishAccumulator(processor, handler, accumulator);
} else {
// if the accumulator is not local, it should be a leftover
// stayed after partition migrations and remove that accumulator
removeAccumulator(context, accumulator);
}
processed++;
} while (processed <= maxProcessableAccumulatorCount);
}
use of com.hazelcast.map.impl.querycache.QueryCacheEventService in project hazelcast by hazelcast.
the class AbstractQueryCacheEndToEndConstructor method addListener.
private String addListener(QueryCacheRequest request) {
MapListener listener = request.getListener();
if (listener == null) {
return null;
}
QueryCacheEventService eventService = subscriberContext.getEventService();
return eventService.addListener(request.getMapName(), request.getCacheName(), listener);
}
use of com.hazelcast.map.impl.querycache.QueryCacheEventService in project hazelcast by hazelcast.
the class AbstractQueryCacheEndToEndConstructor method createSubscriberAccumulator.
@Override
public final void createSubscriberAccumulator(AccumulatorInfo info) {
QueryCacheEventService eventService = context.getQueryCacheEventService();
ListenerAdapter listener = new SubscriberListener(context, info);
eventService.listenPublisher(info.getMapName(), info.getCacheName(), listener);
}
use of com.hazelcast.map.impl.querycache.QueryCacheEventService in project hazelcast by hazelcast.
the class BasicAccumulator method createAccumulatorHandler.
@SuppressWarnings("unchecked")
private AccumulatorHandler<E> createAccumulatorHandler(QueryCacheContext context, AccumulatorInfo info) {
QueryCacheEventService queryCacheEventService = context.getQueryCacheEventService();
AccumulatorProcessor<Sequenced> processor = createAccumulatorProcessor(info, queryCacheEventService);
return (AccumulatorHandler<E>) new PublisherAccumulatorHandler(context, processor);
}
use of com.hazelcast.map.impl.querycache.QueryCacheEventService in project hazelcast by hazelcast.
the class DefaultQueryCache method addEntryListener.
@Override
public String addEntryListener(MapListener listener, Predicate<K, V> predicate, K key, boolean includeValue) {
checkNotNull(listener, "listener cannot be null");
checkNotNull(predicate, "predicate cannot be null");
checkNotNull(key, "key cannot be null");
QueryCacheEventService eventService = getEventService();
EventFilter filter = new QueryEventFilter(includeValue, toData(key), predicate);
String mapName = delegate.getName();
return eventService.addListener(mapName, cacheName, listener, filter);
}
Aggregations