|
|
|
@ -138,7 +138,9 @@ class SynchronousUnaryClient final : public SynchronousClient { |
|
|
|
|
class SynchronousStreamingClient final : public SynchronousClient { |
|
|
|
|
public: |
|
|
|
|
SynchronousStreamingClient(const ClientConfig& config) |
|
|
|
|
: SynchronousClient(config), context_(num_threads_), stream_(num_threads_) { |
|
|
|
|
: SynchronousClient(config), |
|
|
|
|
context_(num_threads_), |
|
|
|
|
stream_(num_threads_) { |
|
|
|
|
for (size_t thread_idx = 0; thread_idx < num_threads_; thread_idx++) { |
|
|
|
|
auto* stub = channels_[thread_idx % channels_.size()].get_stub(); |
|
|
|
|
stream_[thread_idx] = stub->StreamingCall(&context_[thread_idx]); |
|
|
|
@ -178,7 +180,9 @@ class SynchronousStreamingClient final : public SynchronousClient { |
|
|
|
|
// These are both conceptually std::vector but cannot be for old compilers
|
|
|
|
|
// that expect contained classes to support copy constructors
|
|
|
|
|
std::vector<grpc::ClientContext> context_; |
|
|
|
|
std::vector<std::unique_ptr<grpc::ClientReaderWriter<SimpleRequest, SimpleResponse>>> stream_; |
|
|
|
|
std::vector< |
|
|
|
|
std::unique_ptr<grpc::ClientReaderWriter<SimpleRequest, SimpleResponse>>> |
|
|
|
|
stream_; |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
std::unique_ptr<Client> CreateSynchronousUnaryClient( |
|
|
|
|