@Override public void registerTopicSubscriber( @NotNull RequestContext rc, @NotNull TopicSubscriber subscriber) { addToStats("topicSubscription"); Boolean bootstrap = rc.bootstrap(); topicSubscribers.add((TopicSubscriber<K, V>) subscriber); if (bootstrap != Boolean.FALSE && kvStore != null) { try { for (int i = 0; i < kvStore.segments(); i++) kvStore.entriesFor(i, e -> subscriber.onMessage(e.getKey(), e.getValue())); } catch (InvalidSubscriberException dontAdd) { topicSubscribers.remove(subscriber); } } }
@Override public void unregisterTopicSubscriber(@NotNull TopicSubscriber subscriber) { topicSubscribers.remove(subscriber); removeFromStats("topicSubscription"); subscriber.onEndOfSubscription(); }