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:
io.grpc.stub.StreamObserver<RequestT>
public class OrderedConcurrentRequestObserver<RequestT,ResponseT> extends ConcurrentRequestObserver<RequestT,ResponseT> implements io.grpc.stub.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, requestHandler
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
OrderedConcurrentRequestObserver(io.grpc.stub.ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests)
Constructor for those who prefer to overrideConcurrentRequestObserver.onRequest(Object, CallStreamObserver)
andConcurrentRequestObserver.onError(Throwable)
in a subclass instead of providing lambdas.OrderedConcurrentRequestObserver(io.grpc.stub.ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests, BiConsumer<RequestT,io.grpc.stub.CallStreamObserver<ResponseT>> requestHandler, Consumer<Throwable> errorHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ConcurrentRequestObserver.SingleRequestMessageResponseObserver
newSingleRequestMessageResponseObserver()
-
Methods inherited from class pl.morgwai.base.grpc.utils.ConcurrentRequestObserver
onCompleted, onError, onNext, onRequest
-
-
-
-
Constructor Detail
-
OrderedConcurrentRequestObserver
public OrderedConcurrentRequestObserver(io.grpc.stub.ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests, BiConsumer<RequestT,io.grpc.stub.CallStreamObserver<ResponseT>> requestHandler, Consumer<Throwable> errorHandler)
-
OrderedConcurrentRequestObserver
protected OrderedConcurrentRequestObserver(io.grpc.stub.ServerCallStreamObserver<ResponseT> responseObserver, int numberOfConcurrentRequests)
Constructor for those who prefer to overrideConcurrentRequestObserver.onRequest(Object, CallStreamObserver)
andConcurrentRequestObserver.onError(Throwable)
in a subclass instead of providing lambdas.
-
-
Method Detail
-
newSingleRequestMessageResponseObserver
protected ConcurrentRequestObserver.SingleRequestMessageResponseObserver newSingleRequestMessageResponseObserver()
- Overrides:
newSingleRequestMessageResponseObserver
in classConcurrentRequestObserver<RequestT,ResponseT>
-
-