@Override public Object call() throws Exception { final ClientEndpoint endpoint = getEndpoint(); final ClientEngine clientEngine = getClientEngine(); ItemListener listener = new ItemListener() { @Override public void itemAdded(ItemEvent item) { send(item); } @Override public void itemRemoved(ItemEvent item) { send(item); } private void send(ItemEvent event) { if (endpoint.live()) { Data item = serializationService.toData(event.getItem()); final ItemEventType eventType = event.getEventType(); final String uuid = event.getMember().getUuid(); PortableItemEvent portableItemEvent = new PortableItemEvent(item, eventType, uuid); endpoint.sendEvent(portableItemEvent, getCallId()); } } }; final EventService eventService = clientEngine.getEventService(); final CollectionEventFilter filter = new CollectionEventFilter(includeValue); final EventRegistration registration = eventService.registerListener(getServiceName(), name, filter, listener); final String registrationId = registration.getId(); endpoint.setListenerRegistration(getServiceName(), name, registrationId); return registrationId; }
public String addItemListener(ItemListener<E> listener, boolean includeValue) { final EventService eventService = getNodeEngine().getEventService(); final EventRegistration registration = eventService.registerListener( getServiceName(), name, new CollectionEventFilter(includeValue), listener); return registration.getId(); }
public String addListener( String name, EventListener listener, Data key, boolean includeValue, boolean local) { EventService eventService = nodeEngine.getEventService(); EventRegistration registration; final MultiMapEventFilter filter = new MultiMapEventFilter(includeValue, key); if (local) { registration = eventService.registerLocalListener(SERVICE_NAME, name, filter, listener); } else { registration = eventService.registerListener(SERVICE_NAME, name, filter, listener); } return registration.getId(); }
protected String registerListenerInternal( String name, CacheEventListener listener, EventFilter eventFilter) { final EventService eventService = getNodeEngine().getEventService(); final EventRegistration registration; if (eventFilter == null) { registration = eventService.registerListener(AbstractCacheService.SERVICE_NAME, name, listener); } else { registration = eventService.registerListener( AbstractCacheService.SERVICE_NAME, name, eventFilter, listener); } final String id = registration.getId(); if (listener instanceof Closeable) { closeableListeners.put(id, (Closeable) listener); } else if (listener instanceof CacheEntryListenerProvider) { CacheEntryListener cacheEntryListener = ((CacheEntryListenerProvider) listener).getCacheEntryListener(); if (cacheEntryListener instanceof Closeable) { closeableListeners.put(id, (Closeable) cacheEntryListener); } } return id; }