Team gRPC,
We've a scenario where a gRPC client sets up all the operations and does a grpc_call_start_batch(), something like this:
<snip>
......
op->op = GRPC_OP_RECV_INITIAL_METADATA;
op->data.recv_initial_metadata.recv_initial_metadata = &initial_metadata_recv;
op->flags = 0;
op->reserved = nullptr;
op++;
op->op = GRPC_OP_RECV_MESSAGE;
op->data.recv_message.recv_message = &response_payload_recv;
op->flags = 0;
op->reserved = nullptr;
op++;
....
<snip>
......
error = grpc_call_start_batch(c, ops, static_cast<size_t>(op - ops), tag(1),
nullptr);
GPR_ASSERT(GRPC_CALL_OK == error);
In some scenarios, the server side sends only initial metadata whereas in some other scenarios it sends a message as well along with initial metadata and the client isn't aware of when one vs the other scenario happens.
Any pointers or alternative options on this will be of help, thank you!
Best, -Ram.