X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fkafka%2Fchat%2Fbackend%2Fdomain%2FChatroom.java;h=966a28eeb13a331196bda881647bb2c170f07c2a;hb=6c96b0b685b7fece1761f9471d5f0689171956ed;hp=c05fda0abf137df3e6ba5079c15b0cfbec392e29;hpb=0daa9d1a4d6f6b95ffdb42fcf1350ff26a9166e0;p=demos%2Fkafka%2Fchat diff --git a/src/main/java/de/juplo/kafka/chat/backend/domain/Chatroom.java b/src/main/java/de/juplo/kafka/chat/backend/domain/Chatroom.java index c05fda0a..966a28ee 100644 --- a/src/main/java/de/juplo/kafka/chat/backend/domain/Chatroom.java +++ b/src/main/java/de/juplo/kafka/chat/backend/domain/Chatroom.java @@ -1,7 +1,6 @@ package de.juplo.kafka.chat.backend.domain; import lombok.Getter; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -11,7 +10,6 @@ import java.time.LocalDateTime; import java.util.*; -@RequiredArgsConstructor @Slf4j public class Chatroom { @@ -20,7 +18,20 @@ public class Chatroom @Getter private final String name; private final PersistenceStrategy persistence; - private final Sinks.Many sink = Sinks.many().multicast().onBackpressureBuffer(); + private final Sinks.Many sink; + + public Chatroom( + UUID id, + String name, + PersistenceStrategy persistence, + int bufferSize) + { + this.id = id; + this.name = name; + this.persistence = persistence; + this.sink = Sinks.many().multicast().onBackpressureBuffer(bufferSize); + } + synchronized public Mono addMessage( Long id, @@ -44,6 +55,11 @@ public class Chatroom return sink.asFlux(); } + public Flux getMessages() + { + return getMessages(0, Long.MAX_VALUE); + } + public Flux getMessages(long first, long last) { return persistence.getMessages(first, last);