grpcpp/impl/codegen/async_stream.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2019 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 #ifndef GRPCPP_IMPL_CODEGEN_ASYNC_STREAM_H
19 #define GRPCPP_IMPL_CODEGEN_ASYNC_STREAM_H
20 
21 // IWYU pragma: private, include <grpcpp/support/async_stream.h>
22 
29 
30 namespace grpc {
31 
32 namespace internal {
35  public:
37 
41  virtual void StartCall(void* tag) = 0;
42 
49  virtual void ReadInitialMetadata(void* tag) = 0;
50 
78  virtual void Finish(grpc::Status* status, void* tag) = 0;
79 };
80 
82 template <class R>
84  public:
85  virtual ~AsyncReaderInterface() {}
86 
100  virtual void Read(R* msg, void* tag) = 0;
101 };
102 
104 template <class W>
106  public:
108 
121  virtual void Write(const W& msg, void* tag) = 0;
122 
138  virtual void Write(const W& msg, grpc::WriteOptions options, void* tag) = 0;
139 
158  void WriteLast(const W& msg, grpc::WriteOptions options, void* tag) {
159  Write(msg, options.set_last_message(), tag);
160  }
161 };
162 
163 } // namespace internal
164 
165 template <class R>
168  public internal::AsyncReaderInterface<R> {};
169 
170 namespace internal {
171 template <class R>
173  public:
181  template <class W>
186  const W& request, bool start, void* tag) {
189  call.call(), sizeof(ClientAsyncReader<R>)))
191  }
192 };
193 } // namespace internal
194 
198 template <class R>
200  public:
201  // always allocated against a call arena, no memory free required
202  static void operator delete(void* /*ptr*/, std::size_t size) {
204  }
205 
206  // This operator should never be called as the memory should be freed as part
207  // of the arena destruction. It only exists to provide a matching operator
208  // delete to the operator new so that some compilers will not complain (see
209  // https://github.com/grpc/grpc/issues/11301) Note at the time of adding this
210  // there are no tests catching the compiler warning.
211  static void operator delete(void*, void*) { GPR_CODEGEN_ASSERT(false); }
212 
213  void StartCall(void* tag) override {
215  started_ = true;
217  }
218 
227  void ReadInitialMetadata(void* tag) override {
230 
232  meta_ops_.RecvInitialMetadata(context_);
234  }
235 
236  void Read(R* msg, void* tag) override {
240  read_ops_.RecvInitialMetadata(context_);
241  }
242  read_ops_.RecvMessage(msg);
244  }
245 
251  void Finish(grpc::Status* status, void* tag) override {
255  finish_ops_.RecvInitialMetadata(context_);
256  }
257  finish_ops_.ClientRecvStatus(context_, status);
259  }
260 
261  private:
263  template <class W>
265  const W& request, bool start, void* tag)
267  // TODO(ctiller): don't assert
268  GPR_CODEGEN_ASSERT(init_ops_.SendMessage(request).ok());
269  init_ops_.ClientSendClose();
270  if (start) {
272  } else {
273  GPR_CODEGEN_ASSERT(tag == nullptr);
274  }
275  }
276 
277  void StartCallInternal(void* tag) {
278  init_ops_.SendInitialMetadata(&context_->send_initial_metadata_,
282  }
283 
286  bool started_;
299 };
300 
302 template <class W>
306  public:
311  virtual void WritesDone(void* tag) = 0;
312 };
313 
314 namespace internal {
315 template <class W>
317  public:
329  template <class R>
334  bool start, void* tag) {
337  call.call(), sizeof(ClientAsyncWriter<W>)))
339  }
340 };
341 } // namespace internal
342 
346 template <class W>
348  public:
349  // always allocated against a call arena, no memory free required
350  static void operator delete(void* /*ptr*/, std::size_t size) {
352  }
353 
354  // This operator should never be called as the memory should be freed as part
355  // of the arena destruction. It only exists to provide a matching operator
356  // delete to the operator new so that some compilers will not complain (see
357  // https://github.com/grpc/grpc/issues/11301) Note at the time of adding this
358  // there are no tests catching the compiler warning.
359  static void operator delete(void*, void*) { GPR_CODEGEN_ASSERT(false); }
360 
361  void StartCall(void* tag) override {
363  started_ = true;
365  }
366 
374  void ReadInitialMetadata(void* tag) override {
377 
379  meta_ops_.RecvInitialMetadata(context_);
381  }
382 
383  void Write(const W& msg, void* tag) override {
386  // TODO(ctiller): don't assert
387  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg).ok());
389  }
390 
391  void Write(const W& msg, grpc::WriteOptions options, void* tag) override {
394  if (options.is_last_message()) {
395  options.set_buffer_hint();
396  write_ops_.ClientSendClose();
397  }
398  // TODO(ctiller): don't assert
399  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
401  }
402 
403  void WritesDone(void* tag) override {
406  write_ops_.ClientSendClose();
408  }
409 
417  void Finish(grpc::Status* status, void* tag) override {
421  finish_ops_.RecvInitialMetadata(context_);
422  }
423  finish_ops_.ClientRecvStatus(context_, status);
425  }
426 
427  private:
429  template <class R>
431  R* response, bool start, void* tag)
433  finish_ops_.RecvMessage(response);
434  finish_ops_.AllowNoMessage();
435  if (start) {
437  } else {
438  GPR_CODEGEN_ASSERT(tag == nullptr);
439  }
440  }
441 
442  void StartCallInternal(void* tag) {
443  write_ops_.SendInitialMetadata(&context_->send_initial_metadata_,
445  // if corked bit is set in context, we just keep the initial metadata
446  // buffered up to coalesce with later message send. No op is performed.
450  }
451  }
452 
455  bool started_;
466 };
467 
471 template <class W, class R>
476  public:
481  virtual void WritesDone(void* tag) = 0;
482 };
483 
484 namespace internal {
485 template <class W, class R>
487  public:
498  bool start, void* tag) {
500 
502  call.call(), sizeof(ClientAsyncReaderWriter<W, R>)))
504  }
505 };
506 } // namespace internal
507 
512 template <class W, class R>
514  : public ClientAsyncReaderWriterInterface<W, R> {
515  public:
516  // always allocated against a call arena, no memory free required
517  static void operator delete(void* /*ptr*/, std::size_t size) {
519  }
520 
521  // This operator should never be called as the memory should be freed as part
522  // of the arena destruction. It only exists to provide a matching operator
523  // delete to the operator new so that some compilers will not complain (see
524  // https://github.com/grpc/grpc/issues/11301) Note at the time of adding this
525  // there are no tests catching the compiler warning.
526  static void operator delete(void*, void*) { GPR_CODEGEN_ASSERT(false); }
527 
528  void StartCall(void* tag) override {
530  started_ = true;
532  }
533 
541  void ReadInitialMetadata(void* tag) override {
544 
546  meta_ops_.RecvInitialMetadata(context_);
548  }
549 
550  void Read(R* msg, void* tag) override {
554  read_ops_.RecvInitialMetadata(context_);
555  }
556  read_ops_.RecvMessage(msg);
558  }
559 
560  void Write(const W& msg, void* tag) override {
563  // TODO(ctiller): don't assert
564  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg).ok());
566  }
567 
568  void Write(const W& msg, grpc::WriteOptions options, void* tag) override {
571  if (options.is_last_message()) {
572  options.set_buffer_hint();
573  write_ops_.ClientSendClose();
574  }
575  // TODO(ctiller): don't assert
576  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
578  }
579 
580  void WritesDone(void* tag) override {
583  write_ops_.ClientSendClose();
585  }
586 
591  void Finish(grpc::Status* status, void* tag) override {
595  finish_ops_.RecvInitialMetadata(context_);
596  }
597  finish_ops_.ClientRecvStatus(context_, status);
599  }
600 
601  private:
604  grpc::ClientContext* context, bool start, void* tag)
606  if (start) {
608  } else {
609  GPR_CODEGEN_ASSERT(tag == nullptr);
610  }
611  }
612 
613  void StartCallInternal(void* tag) {
614  write_ops_.SendInitialMetadata(&context_->send_initial_metadata_,
616  // if corked bit is set in context, we just keep the initial metadata
617  // buffered up to coalesce with later message send. No op is performed.
621  }
622  }
623 
626  bool started_;
639 };
640 
641 template <class W, class R>
645  public:
668  virtual void Finish(const W& msg, const grpc::Status& status, void* tag) = 0;
669 
691  virtual void FinishWithError(const grpc::Status& status, void* tag) = 0;
692 };
693 
697 template <class W, class R>
698 class ServerAsyncReader final : public ServerAsyncReaderInterface<W, R> {
699  public:
701  : call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
702 
708  void SendInitialMetadata(void* tag) override {
710 
712  meta_ops_.SendInitialMetadata(&ctx_->initial_metadata_,
714  if (ctx_->compression_level_set()) {
715  meta_ops_.set_compression_level(ctx_->compression_level());
716  }
719  }
720 
721  void Read(R* msg, void* tag) override {
723  read_ops_.RecvMessage(msg);
725  }
726 
738  void Finish(const W& msg, const grpc::Status& status, void* tag) override {
741  finish_ops_.SendInitialMetadata(&ctx_->initial_metadata_,
743  if (ctx_->compression_level_set()) {
744  finish_ops_.set_compression_level(ctx_->compression_level());
745  }
747  }
748  // The response is dropped if the status is not OK.
749  if (status.ok()) {
750  finish_ops_.ServerSendStatus(&ctx_->trailing_metadata_,
751  finish_ops_.SendMessage(msg));
752  } else {
753  finish_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
754  }
756  }
757 
767  void FinishWithError(const grpc::Status& status, void* tag) override {
768  GPR_CODEGEN_ASSERT(!status.ok());
771  finish_ops_.SendInitialMetadata(&ctx_->initial_metadata_,
773  if (ctx_->compression_level_set()) {
774  finish_ops_.set_compression_level(ctx_->compression_level());
775  }
777  }
778  finish_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
780  }
781 
782  private:
783  void BindCall(grpc::internal::Call* call) override { call_ = *call; }
784 
794 };
795 
796 template <class W>
800  public:
822  virtual void Finish(const grpc::Status& status, void* tag) = 0;
823 
838  virtual void WriteAndFinish(const W& msg, grpc::WriteOptions options,
839  const grpc::Status& status, void* tag) = 0;
840 };
841 
844 template <class W>
846  public:
848  : call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
849 
857  void SendInitialMetadata(void* tag) override {
859 
861  meta_ops_.SendInitialMetadata(&ctx_->initial_metadata_,
863  if (ctx_->compression_level_set()) {
864  meta_ops_.set_compression_level(ctx_->compression_level());
865  }
868  }
869 
870  void Write(const W& msg, void* tag) override {
873  // TODO(ctiller): don't assert
874  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg).ok());
876  }
877 
878  void Write(const W& msg, grpc::WriteOptions options, void* tag) override {
880  if (options.is_last_message()) {
881  options.set_buffer_hint();
882  }
883 
885  // TODO(ctiller): don't assert
886  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
888  }
889 
901  const grpc::Status& status, void* tag) override {
904  options.set_buffer_hint();
905  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
906  write_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
908  }
909 
921  void Finish(const grpc::Status& status, void* tag) override {
924  finish_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
926  }
927 
928  private:
929  void BindCall(grpc::internal::Call* call) override { call_ = *call; }
930 
931  template <class T>
934  ops->SendInitialMetadata(&ctx_->initial_metadata_,
936  if (ctx_->compression_level_set()) {
937  ops->set_compression_level(ctx_->compression_level());
938  }
940  }
941  }
942 
954 };
955 
957 template <class W, class R>
962  public:
985  virtual void Finish(const grpc::Status& status, void* tag) = 0;
986 
1001  virtual void WriteAndFinish(const W& msg, grpc::WriteOptions options,
1002  const grpc::Status& status, void* tag) = 0;
1003 };
1004 
1009 template <class W, class R>
1011  : public ServerAsyncReaderWriterInterface<W, R> {
1012  public:
1014  : call_(nullptr, nullptr, nullptr), ctx_(ctx) {}
1015 
1023  void SendInitialMetadata(void* tag) override {
1025 
1027  meta_ops_.SendInitialMetadata(&ctx_->initial_metadata_,
1029  if (ctx_->compression_level_set()) {
1030  meta_ops_.set_compression_level(ctx_->compression_level());
1031  }
1032  ctx_->sent_initial_metadata_ = true;
1034  }
1035 
1036  void Read(R* msg, void* tag) override {
1038  read_ops_.RecvMessage(msg);
1040  }
1041 
1042  void Write(const W& msg, void* tag) override {
1045  // TODO(ctiller): don't assert
1046  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg).ok());
1048  }
1049 
1050  void Write(const W& msg, grpc::WriteOptions options, void* tag) override {
1052  if (options.is_last_message()) {
1053  options.set_buffer_hint();
1054  }
1056  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
1058  }
1059 
1068  //
1072  const grpc::Status& status, void* tag) override {
1075  options.set_buffer_hint();
1076  GPR_CODEGEN_ASSERT(write_ops_.SendMessage(msg, options).ok());
1077  write_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
1079  }
1080 
1089  //
1092  void Finish(const grpc::Status& status, void* tag) override {
1095 
1096  finish_ops_.ServerSendStatus(&ctx_->trailing_metadata_, status);
1098  }
1099 
1100  private:
1101  friend class grpc::Server;
1102 
1103  void BindCall(grpc::internal::Call* call) override { call_ = *call; }
1104 
1105  template <class T>
1107  if (!ctx_->sent_initial_metadata_) {
1108  ops->SendInitialMetadata(&ctx_->initial_metadata_,
1110  if (ctx_->compression_level_set()) {
1111  ops->set_compression_level(ctx_->compression_level());
1112  }
1113  ctx_->sent_initial_metadata_ = true;
1114  }
1115  }
1116 
1129 };
1130 
1131 } // namespace grpc
1132 #endif // GRPCPP_IMPL_CODEGEN_ASYNC_STREAM_H
grpc::ClientContext::send_initial_metadata_
std::multimap< std::string, std::string > send_initial_metadata_
Definition: grpcpp/impl/codegen/client_context.h:502
grpc::ServerAsyncWriter::ctx_
grpc::ServerContext * ctx_
Definition: grpcpp/impl/codegen/async_stream.h:944
grpc::ClientAsyncReaderWriter::ClientAsyncReaderWriter
ClientAsyncReaderWriter(grpc::internal::Call call, grpc::ClientContext *context, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:603
grpc::internal::CallOpSendMessage
Definition: call_op_set.h:289
grpc::status
auto status
Definition: cpp/client/credentials_test.cc:200
grpc::ClientAsyncWriter::StartCallInternal
void StartCallInternal(void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:442
grpc::ClientAsyncReaderWriter::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:628
grpc::ServerAsyncReader::FinishWithError
void FinishWithError(const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:767
grpc::ClientAsyncWriter::ReadInitialMetadata
void ReadInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:374
grpc::internal::AsyncReaderInterface
An interface that yields a sequence of messages of type R.
Definition: grpcpp/impl/codegen/async_stream.h:83
grpc::ServerAsyncReader::SendInitialMetadata
void SendInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:708
grpc::ServerContext
Definition: grpcpp/impl/codegen/server_context.h:566
grpc::ServerAsyncWriterInterface
Definition: grpcpp/impl/codegen/async_stream.h:797
ctx
Definition: benchmark-async.c:30
grpc::ClientAsyncReader::Finish
void Finish(grpc::Status *status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:251
grpc::ServerAsyncReader::ServerAsyncReader
ServerAsyncReader(grpc::ServerContext *ctx)
Definition: grpcpp/impl/codegen/async_stream.h:700
grpc
Definition: grpcpp/alarm.h:33
grpc::ServerAsyncReaderWriter::WriteAndFinish
void WriteAndFinish(const W &msg, grpc::WriteOptions options, const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1071
grpc::ServerAsyncReader
Definition: grpcpp/impl/codegen/async_stream.h:698
grpc::ServerContextBase::trailing_metadata_
std::multimap< std::string, std::string > trailing_metadata_
Definition: grpcpp/impl/codegen/server_context.h:476
grpc::ServerAsyncReaderInterface::Finish
virtual void Finish(const W &msg, const grpc::Status &status, void *tag)=0
grpc::ServerAsyncWriter::BindCall
void BindCall(grpc::internal::Call *call) override
Definition: grpcpp/impl/codegen/async_stream.h:929
grpc::ServerAsyncReaderWriter::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:1120
grpc::ClientAsyncReaderWriter::Finish
void Finish(grpc::Status *status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:591
service_type.h
options
double_dict options[]
Definition: capstone_test.c:55
benchmark.request
request
Definition: benchmark.py:77
grpc::internal::CallOpGenericRecvMessage
Definition: call_op_set.h:533
grpc::internal::ClientAsyncStreamingInterface::ReadInitialMetadata
virtual void ReadInitialMetadata(void *tag)=0
grpc::ClientAsyncReader::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpClientRecvStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:298
grpc::ServerAsyncReaderWriter::EnsureInitialMetadataSent
void EnsureInitialMetadataSent(T *ops)
Definition: grpcpp/impl/codegen/async_stream.h:1106
grpc::internal::CallOpSet::set_output_tag
void set_output_tag(void *return_tag)
Definition: call_op_set.h:943
grpc::internal::ClientAsyncReaderWriterFactory
Definition: grpcpp/impl/codegen/async_stream.h:486
grpc::ClientAsyncReaderWriterInterface::WritesDone
virtual void WritesDone(void *tag)=0
grpc::ClientAsyncReaderWriter::write_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpClientSendClose > write_ops_
Definition: grpcpp/impl/codegen/async_stream.h:635
grpc::ClientAsyncReader::StartCall
void StartCall(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:213
grpc::CoreCodegenInterface::grpc_call_arena_alloc
virtual void * grpc_call_arena_alloc(grpc_call *call, size_t length)=0
core_codegen_interface.h
grpc::ServerAsyncReaderWriter
Definition: grpcpp/impl/codegen/async_stream.h:1010
grpc::internal::ClientAsyncStreamingInterface::Finish
virtual void Finish(grpc::Status *status, void *tag)=0
grpc::ServerAsyncReaderWriter::Write
void Write(const W &msg, grpc::WriteOptions options, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1050
grpc::ClientAsyncReaderWriter::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpClientRecvStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:638
grpc::ClientAsyncReaderWriter::started_
bool started_
Definition: grpcpp/impl/codegen/async_stream.h:626
grpc::ServerAsyncReaderWriterInterface::WriteAndFinish
virtual void WriteAndFinish(const W &msg, grpc::WriteOptions options, const grpc::Status &status, void *tag)=0
grpc::ClientAsyncWriter::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:454
grpc::internal::ClientAsyncWriterFactory
Definition: grpcpp/impl/codegen/async_stream.h:316
grpc::ServerAsyncWriter::WriteAndFinish
void WriteAndFinish(const W &msg, grpc::WriteOptions options, const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:900
grpc::ServerAsyncWriterInterface::WriteAndFinish
virtual void WriteAndFinish(const W &msg, grpc::WriteOptions options, const grpc::Status &status, void *tag)=0
grpc::ClientAsyncReaderWriter::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:625
grpc::ClientAsyncReaderWriter::ReadInitialMetadata
void ReadInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:541
grpc::internal::AsyncWriterInterface::WriteLast
void WriteLast(const W &msg, grpc::WriteOptions options, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:158
grpc::ServerAsyncReaderWriterInterface::Finish
virtual void Finish(const grpc::Status &status, void *tag)=0
T
#define T(upbtypeconst, upbtype, ctype, default_value)
grpc::internal::AsyncWriterInterface
An interface that can be fed a sequence of messages of type W.
Definition: grpcpp/impl/codegen/async_stream.h:105
grpc::ServerAsyncReader::BindCall
void BindCall(grpc::internal::Call *call) override
Definition: grpcpp/impl/codegen/async_stream.h:783
call
FilterStackCall * call
Definition: call.cc:750
grpc::internal::AsyncReaderInterface::~AsyncReaderInterface
virtual ~AsyncReaderInterface()
Definition: grpcpp/impl/codegen/async_stream.h:85
grpc::WriteOptions
Per-message write options.
Definition: call_op_set.h:81
grpc::ClientAsyncReaderInterface
Definition: grpcpp/impl/codegen/async_stream.h:166
grpc::ServerAsyncWriterInterface::Finish
virtual void Finish(const grpc::Status &status, void *tag)=0
grpc::ServerAsyncReaderWriter::ServerAsyncReaderWriter
ServerAsyncReaderWriter(grpc::ServerContext *ctx)
Definition: grpcpp/impl/codegen/async_stream.h:1013
grpc::internal::CallOpServerSendStatus
Definition: call_op_set.h:661
grpc::ClientAsyncReaderWriter::Write
void Write(const W &msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:560
grpc::internal::CallOpClientRecvStatus
Definition: call_op_set.h:776
grpc::g_core_codegen_interface
CoreCodegenInterface * g_core_codegen_interface
Definition: include/grpcpp/impl/codegen/completion_queue.h:98
grpc::ClientAsyncWriter::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:457
grpc::ClientAsyncReaderWriter::StartCallInternal
void StartCallInternal(void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:613
grpc::ServerAsyncWriter::Finish
void Finish(const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:921
grpc::ClientAsyncReaderWriter::read_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpRecvMessage< R > > read_ops_
Definition: grpcpp/impl/codegen/async_stream.h:631
grpc::ClientAsyncReader::StartCallInternal
void StartCallInternal(void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:277
grpc::ServerAsyncWriter::write_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpServerSendStatus > write_ops_
Definition: grpcpp/impl/codegen/async_stream.h:950
start
static uint64_t start
Definition: benchmark-pound.c:74
grpc::internal::AsyncWriterInterface::Write
virtual void Write(const W &msg, void *tag)=0
grpc::ChannelInterface
Codegen interface for grpc::Channel.
Definition: grpcpp/impl/codegen/channel_interface.h:73
grpc::ServerAsyncReaderInterface::FinishWithError
virtual void FinishWithError(const grpc::Status &status, void *tag)=0
W
#define W
Definition: zlib/crc32.c:85
channel
wrapped_grpc_channel * channel
Definition: src/php/ext/grpc/call.h:33
grpc::internal::AsyncWriterInterface::~AsyncWriterInterface
virtual ~AsyncWriterInterface()
Definition: grpcpp/impl/codegen/async_stream.h:107
grpc::internal::ClientAsyncStreamingInterface::StartCall
virtual void StartCall(void *tag)=0
grpc::ServerContextBase::initial_metadata_flags
uint32_t initial_metadata_flags() const
Definition: grpcpp/impl/codegen/server_context.h:427
grpc::internal::RpcMethod
Descriptor of an RPC method.
Definition: grpcpp/impl/codegen/rpc_method.h:31
grpc::ClientAsyncReader::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:292
grpc::ServerAsyncReaderWriter::write_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpServerSendStatus > write_ops_
Definition: grpcpp/impl/codegen/async_stream.h:1125
tag
static void * tag(intptr_t t)
Definition: bad_client.cc:318
grpc::ServerAsyncReaderWriterInterface
Server-side interface for asynchronous bi-directional streaming.
Definition: grpcpp/impl/codegen/async_stream.h:958
grpc::internal::ClientAsyncStreamingInterface::~ClientAsyncStreamingInterface
virtual ~ClientAsyncStreamingInterface()
Definition: grpcpp/impl/codegen/async_stream.h:36
grpc::ClientAsyncWriter::ClientAsyncWriter
ClientAsyncWriter(grpc::internal::Call call, grpc::ClientContext *context, R *response, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:430
grpc::ClientAsyncWriter::StartCall
void StartCall(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:361
grpc::ClientAsyncReaderWriter::Read
void Read(R *msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:550
grpc::ServerAsyncReader::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:785
grpc::ServerAsyncWriter::ServerAsyncWriter
ServerAsyncWriter(grpc::ServerContext *ctx)
Definition: grpcpp/impl/codegen/async_stream.h:847
grpc::internal::ClientAsyncReaderFactory
Definition: grpcpp/impl/codegen/async_stream.h:172
grpc::ServerContextBase::initial_metadata_
std::multimap< std::string, std::string > initial_metadata_
Definition: grpcpp/impl/codegen/server_context.h:475
grpc::internal::Call::PerformOps
void PerformOps(CallOpSetInterface *ops)
Definition: include/grpcpp/impl/codegen/call.h:67
grpc::ClientAsyncWriter::Finish
void Finish(grpc::Status *status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:417
grpc::ClientAsyncReaderWriter::Write
void Write(const W &msg, grpc::WriteOptions options, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:568
grpc::ClientAsyncWriterInterface
Common interface for client side asynchronous writing.
Definition: grpcpp/impl/codegen/async_stream.h:303
grpc::ServerAsyncWriter::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:943
grpc::ServerAsyncReaderWriter::Write
void Write(const W &msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1042
grpc::ClientContext::initial_metadata_received_
bool initial_metadata_received_
Definition: grpcpp/impl/codegen/client_context.h:490
grpc::ServerAsyncReader::Read
void Read(R *msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:721
grpc::ServerAsyncReaderWriter::SendInitialMetadata
void SendInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1023
grpc::internal::CallOpRecvMessage
Definition: include/grpcpp/impl/codegen/byte_buffer.h:52
grpc::ClientAsyncReader::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:285
grpc::ServerAsyncReaderInterface
Definition: grpcpp/impl/codegen/async_stream.h:642
grpc::ServerContext::compression_level
grpc_compression_level compression_level() const
Return the compression algorithm to be used by the server call.
Definition: grpcpp/impl/codegen/server_context.h:236
grpc::ClientAsyncReader::init_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpClientSendClose > init_ops_
Definition: grpcpp/impl/codegen/async_stream.h:290
grpc::internal::ClientAsyncStreamingInterface
Common interface for all client side asynchronous streaming.
Definition: grpcpp/impl/codegen/async_stream.h:34
grpc::ClientAsyncWriter::WritesDone
void WritesDone(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:403
grpc::ServerAsyncReader::Finish
void Finish(const W &msg, const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:738
grpc::internal::Call
Straightforward wrapping of the C call object.
Definition: include/grpcpp/impl/codegen/call.h:37
grpc::internal::ClientAsyncReaderFactory::Create
static ClientAsyncReader< R > * Create(grpc::ChannelInterface *channel, grpc::CompletionQueue *cq, const grpc::internal::RpcMethod &method, grpc::ClientContext *context, const W &request, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:182
grpc::internal::CallOpSet
Definition: call_op_set.h:859
grpc::ServerAsyncReaderWriter::read_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvMessage< R > > read_ops_
Definition: grpcpp/impl/codegen/async_stream.h:1121
msg
std::string msg
Definition: client_interceptors_end2end_test.cc:372
grpc::internal::CallOpRecvInitialMetadata
Definition: call_op_set.h:728
grpc::ClientAsyncWriter::started_
bool started_
Definition: grpcpp/impl/codegen/async_stream.h:455
grpc::ClientContext::initial_metadata_flags
uint32_t initial_metadata_flags() const
Definition: grpcpp/impl/codegen/client_context.h:474
grpc::ServerAsyncReaderWriter::call_
grpc::internal::Call call_
Definition: grpcpp/impl/codegen/async_stream.h:1117
grpc::ClientAsyncReaderWriter::context_
grpc::ClientContext * context_
Definition: grpcpp/impl/codegen/async_stream.h:624
grpc::ClientContext
Definition: grpcpp/impl/codegen/client_context.h:195
grpc::ClientAsyncWriter::write_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpClientSendClose > write_ops_
Definition: grpcpp/impl/codegen/async_stream.h:461
grpc::ServerContextBase::sent_initial_metadata_
bool sent_initial_metadata_
Definition: grpcpp/impl/codegen/server_context.h:472
grpc::internal::ClientAsyncReaderWriterFactory::Create
static ClientAsyncReaderWriter< W, R > * Create(grpc::ChannelInterface *channel, grpc::CompletionQueue *cq, const grpc::internal::RpcMethod &method, grpc::ClientContext *context, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:495
grpc::ClientAsyncReader
Definition: grpcpp/impl/codegen/async_stream.h:199
status.h
grpc::internal::ServerAsyncStreamingInterface
Definition: grpcpp/impl/codegen/service_type.h:39
grpc::ClientAsyncReaderWriter::StartCall
void StartCall(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:528
grpc::ClientAsyncReader::Read
void Read(R *msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:236
grpc::ServerAsyncWriter::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:946
grpc::internal::AsyncReaderInterface::Read
virtual void Read(R *msg, void *tag)=0
grpc::internal::CallOpSendInitialMetadata
Definition: call_op_set.h:219
grpc::ServerAsyncReader::read_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvMessage< R > > read_ops_
Definition: grpcpp/impl/codegen/async_stream.h:789
channel_interface.h
grpc::ServerAsyncWriter::Write
void Write(const W &msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:870
grpc::ClientAsyncWriter::Write
void Write(const W &msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:383
grpc::Server
Definition: include/grpcpp/server.h:59
grpc::ClientAsyncReaderWriterInterface
Definition: grpcpp/impl/codegen/async_stream.h:472
grpc::ServerAsyncReaderWriter::BindCall
void BindCall(grpc::internal::Call *call) override
Definition: grpcpp/impl/codegen/async_stream.h:1103
grpc::ClientAsyncReaderWriter
Definition: grpcpp/impl/codegen/async_stream.h:513
grpc::ClientAsyncReader::ReadInitialMetadata
void ReadInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:227
asyncio_get_stats.response
response
Definition: asyncio_get_stats.py:28
grpc::ServerAsyncReaderWriter::Read
void Read(R *msg, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1036
grpc::ClientAsyncWriter::context_
grpc::ClientContext * context_
Definition: grpcpp/impl/codegen/async_stream.h:453
server_context.h
grpc::ClientAsyncReader::context_
grpc::ClientContext * context_
Definition: grpcpp/impl/codegen/async_stream.h:284
grpc::ServerAsyncReader::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpServerSendStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:793
grpc::ServerAsyncWriter::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpServerSendStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:953
grpc::Status
Definition: include/grpcpp/impl/codegen/status.h:35
grpc::ServerAsyncReaderWriter::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpServerSendStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:1128
grpc::ClientContext::initial_metadata_corked_
bool initial_metadata_corked_
Definition: grpcpp/impl/codegen/client_context.h:510
grpc::ClientAsyncWriter::Write
void Write(const W &msg, grpc::WriteOptions options, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:391
grpc::ClientAsyncReaderWriter::WritesDone
void WritesDone(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:580
grpc::internal::CallOpClientSendClose
Definition: call_op_set.h:626
grpc::ServerAsyncWriter::Write
void Write(const W &msg, grpc::WriteOptions options, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:878
GPR_CODEGEN_ASSERT
#define GPR_CODEGEN_ASSERT(x)
Codegen specific version of GPR_ASSERT.
Definition: grpcpp/impl/codegen/core_codegen_interface.h:151
internal
Definition: benchmark/test/output_test_helper.cc:20
context
grpc::ClientContext context
Definition: istio_echo_server_lib.cc:61
grpc::ClientAsyncWriter::finish_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpGenericRecvMessage, grpc::internal::CallOpClientRecvStatus > finish_ops_
Definition: grpcpp/impl/codegen/async_stream.h:465
grpc::CompletionQueue
Definition: include/grpcpp/impl/codegen/completion_queue.h:104
grpc::ServerAsyncReaderWriter::Finish
void Finish(const grpc::Status &status, void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:1092
size
voidpf void uLong size
Definition: bloaty/third_party/zlib/contrib/minizip/ioapi.h:136
grpc::ClientAsyncWriterInterface::WritesDone
virtual void WritesDone(void *tag)=0
grpc::ClientAsyncWriter
Definition: grpcpp/impl/codegen/async_stream.h:347
grpc::ServerAsyncReaderWriter::ctx_
grpc::ServerContext * ctx_
Definition: grpcpp/impl/codegen/async_stream.h:1118
grpc::ServerAsyncWriter
Definition: grpcpp/impl/codegen/async_stream.h:845
method
NSString * method
Definition: ProtoMethod.h:28
grpc::ServerAsyncWriter::SendInitialMetadata
void SendInitialMetadata(void *tag) override
Definition: grpcpp/impl/codegen/async_stream.h:857
grpc::ServerContext::compression_level_set
bool compression_level_set() const
Definition: grpcpp/impl/codegen/server_context.h:251
ops
static grpc_op ops[6]
Definition: test/core/fling/client.cc:39
grpc::ServerAsyncReader::meta_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata > meta_ops_
Definition: grpcpp/impl/codegen/async_stream.h:788
cq
static grpc_completion_queue * cq
Definition: test/core/fling/client.cc:37
grpc::ClientAsyncReader::read_ops_
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpRecvMessage< R > > read_ops_
Definition: grpcpp/impl/codegen/async_stream.h:295
grpc::ServerAsyncReader::ctx_
grpc::ServerContext * ctx_
Definition: grpcpp/impl/codegen/async_stream.h:786
grpc::ClientAsyncReader::started_
bool started_
Definition: grpcpp/impl/codegen/async_stream.h:286
call.h
grpc::internal::ClientAsyncWriterFactory::Create
static ClientAsyncWriter< W > * Create(grpc::ChannelInterface *channel, grpc::CompletionQueue *cq, const grpc::internal::RpcMethod &method, grpc::ClientContext *context, R *response, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:330
grpc::ClientAsyncReader::ClientAsyncReader
ClientAsyncReader(grpc::internal::Call call, grpc::ClientContext *context, const W &request, bool start, void *tag)
Definition: grpcpp/impl/codegen/async_stream.h:264
grpc::ServerAsyncWriter::EnsureInitialMetadataSent
void EnsureInitialMetadataSent(T *ops)
Definition: grpcpp/impl/codegen/async_stream.h:932


grpc
Author(s):
autogenerated on Thu Mar 13 2025 02:58:35