Package pl.morgwai.base.grpc.utils
Class OrderedConcurrentRequestObserver<RequestT,ResponseT>
- java.lang.Object
-
- pl.morgwai.base.grpc.utils.ConcurrentRequestObserver<RequestT,ResponseT>
-
- pl.morgwai.base.grpc.utils.OrderedConcurrentRequestObserver<RequestT,ResponseT>
-
- All Implemented Interfaces:
StreamObserver<RequestT>
public class OrderedConcurrentRequestObserver<RequestT,ResponseT> extends ConcurrentRequestObserver<RequestT,ResponseT> implements StreamObserver<RequestT>
AConcurrentRequestObserver
that usesOrderedConcurrentOutputBuffer
to automatically ensure that response messages are sent in order corresponding to request messages order.Note: as only responses to "head" requests are sent directly to clients and rest is buffered, the number of requests processed concurrently should not be set too big to avoid excessive buffer growth.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class pl.morgwai.base.grpc.utils.ConcurrentRequestObserver
ConcurrentRequestObserver.SingleRequestMessageResponseObserver
-
-
Field Summary
-
Fields inherited from class pl.morgwai.base.grpc.utils.ConcurrentRequestObserver
errorHandler, lock, requestHandler
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
OrderedConcurrentRequestObserver(ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests)
Seesuper
.OrderedConcurrentRequestObserver(ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests, BiConsumer<RequestT,CallStreamObserver<ResponseT>> requestHandler, Consumer<Throwable> errorHandler)
Seesuper
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ConcurrentRequestObserver.SingleRequestMessageResponseObserver
newSingleRequestMessageResponseObserver()
Constructs a newConcurrentRequestObserver.SingleRequestMessageResponseObserver
that instead of writing messages directly to the parent response observer, buffers them in its associated bucket.-
Methods inherited from class pl.morgwai.base.grpc.utils.ConcurrentRequestObserver
onCompleted, onError, onNext, onRequestMessage
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.grpc.stub.StreamObserver
onCompleted, onError, onNext
-
-
-
-
Constructor Detail
-
OrderedConcurrentRequestObserver
public OrderedConcurrentRequestObserver(ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests, BiConsumer<RequestT,CallStreamObserver<ResponseT>> requestHandler, Consumer<Throwable> errorHandler)
Seesuper
.
-
OrderedConcurrentRequestObserver
protected OrderedConcurrentRequestObserver(ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests)
Seesuper
.
-
-
Method Detail
-
newSingleRequestMessageResponseObserver
protected ConcurrentRequestObserver.SingleRequestMessageResponseObserver newSingleRequestMessageResponseObserver()
Constructs a newConcurrentRequestObserver.SingleRequestMessageResponseObserver
that instead of writing messages directly to the parent response observer, buffers them in its associated bucket.- Overrides:
newSingleRequestMessageResponseObserver
in classConcurrentRequestObserver<RequestT,ResponseT>
- See Also:
newSingleRequestMessageResponseObserver()
-
-