RPP's based implementation for grpc client bidirectional reactor.
To use it you need:
- create it via new operator
- pass it to stub->async()->GrpcBidirectionalStream(ctx, reactor);
- call reactor->init() method for actual starting of grpc logic
- to access values FROM stream you can subscribe to observable obtained via reactor->get_observable() (same observable WOULD emit on_completed in case of successful stream termination and on_error in case of some errors with grpc stream)
- to pass values TO stream you can emit values to observer obtained via reactor->get_observer()
auto channel = grpc::CreateChannel("localhost:50051", grpc::InsecureChannelCredentials());
auto stub = TestService::NewStub(channel);
grpc::ClientContext ctx{};
stub->async()->Bidirectional(&ctx, reactor);
reactor->get_observable().subscribe([](const Response&) {});
reactor->init();
reactor->get_observer().on_next(Request{});
- Examples
- client_reactor.cpp.