@Override public TrackingToken createTokenAt(Instant dateTime) { return events.values() .stream() .filter(event -> event.getTimestamp().equals(dateTime) || event.getTimestamp().isAfter(dateTime)) .min(Comparator.comparingLong(e -> ((GlobalSequenceTrackingToken) e.trackingToken()) .getGlobalIndex())) .map(TrackedEventMessage::trackingToken) .map(tt -> (GlobalSequenceTrackingToken) tt) .map(tt -> new GlobalSequenceTrackingToken(tt.getGlobalIndex() - 1)) .orElse(null); }
@Override public TrackingToken createTailToken() { if (events.size() == 0) { return null; } GlobalSequenceTrackingToken firstToken = (GlobalSequenceTrackingToken) events.firstKey(); return new GlobalSequenceTrackingToken(firstToken.getGlobalIndex() - 1); }
long nextToken = trackingToken == null ? 0 : ((GlobalSequenceTrackingToken) trackingToken).getGlobalIndex() + 1; EventBuffer consumer = new EventBuffer(upcasterChain, getEventSerializer());
@Override public TrackingToken createTokenAt(Instant dateTime) { return events.values() .stream() .filter(event -> event.getTimestamp().equals(dateTime) || event.getTimestamp().isAfter(dateTime)) .min(Comparator.comparingLong(e -> ((GlobalSequenceTrackingToken) e.trackingToken()) .getGlobalIndex())) .map(TrackedEventMessage::trackingToken) .map(tt -> (GlobalSequenceTrackingToken) tt) .map(tt -> new GlobalSequenceTrackingToken(tt.getGlobalIndex() - 1)) .orElse(null); }
@Override public TrackingToken createTailToken() { if (events.size() == 0) { return null; } GlobalSequenceTrackingToken firstToken = (GlobalSequenceTrackingToken) events.firstKey(); return new GlobalSequenceTrackingToken(firstToken.getGlobalIndex() - 1); }
long nextToken = trackingToken == null ? 0 : ((GlobalSequenceTrackingToken) trackingToken).getGlobalIndex() + 1; EventBuffer consumer = new EventBuffer(upcasterChain, getEventSerializer());