Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
grpc::ClientAsyncReaderWriter< W, R > Class Template Referencefinal

#include <async_stream.h>

Inheritance diagram for grpc::ClientAsyncReaderWriter< W, R >:
Inheritance graph
[legend]

Public Member Functions

void Finish (grpc::Status *status, void *tag) override
 
void Read (R *msg, void *tag) override
 
void ReadInitialMetadata (void *tag) override
 
void StartCall (void *tag) override
 
void Write (const W &msg, grpc::WriteOptions options, void *tag) override
 
void Write (const W &msg, void *tag) override
 
void WritesDone (void *tag) override
 
- Public Member Functions inherited from grpc::internal::ClientAsyncStreamingInterface
virtual ~ClientAsyncStreamingInterface ()
 
- Public Member Functions inherited from grpc::internal::AsyncWriterInterface< W >
void WriteLast (const W &msg, grpc::WriteOptions options, void *tag)
 
virtual ~AsyncWriterInterface ()
 
- Public Member Functions inherited from grpc::internal::AsyncReaderInterface< R >
virtual ~AsyncReaderInterface ()
 

Static Public Member Functions

static void operator delete (void *, std::size_t size)
 
static void operator delete (void *, void *)
 

Private Member Functions

 ClientAsyncReaderWriter (grpc::internal::Call call, grpc::ClientContext *context, bool start, void *tag)
 
void StartCallInternal (void *tag)
 

Private Attributes

grpc::internal::Call call_
 
grpc::ClientContextcontext_
 
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpClientRecvStatusfinish_ops_
 
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadatameta_ops_
 
grpc::internal::CallOpSet< grpc::internal::CallOpRecvInitialMetadata, grpc::internal::CallOpRecvMessage< R > > read_ops_
 
bool started_
 
grpc::internal::CallOpSet< grpc::internal::CallOpSendInitialMetadata, grpc::internal::CallOpSendMessage, grpc::internal::CallOpClientSendClosewrite_ops_
 

Friends

class internal::ClientAsyncReaderWriterFactory< W, R >
 

Detailed Description

template<class W, class R>
class grpc::ClientAsyncReaderWriter< W, R >

Async client-side interface for bi-directional streaming, where the outgoing message stream going to the server has messages of type W, and the incoming message stream coming from the server has messages of type R.

Definition at line 513 of file grpcpp/impl/codegen/async_stream.h.

Constructor & Destructor Documentation

◆ ClientAsyncReaderWriter()

template<class W , class R >
grpc::ClientAsyncReaderWriter< W, R >::ClientAsyncReaderWriter ( grpc::internal::Call  call,
grpc::ClientContext context,
bool  start,
void *  tag 
)
inlineprivate

Definition at line 603 of file grpcpp/impl/codegen/async_stream.h.

Member Function Documentation

◆ Finish()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::Finish ( grpc::Status status,
void *  tag 
)
inlineoverridevirtual

See the ClientAsyncStreamingInterface.Finish method for semantics. Side effect

  • the ClientContext associated with this call is updated with possible initial and trailing metadata sent from the server.

Implements grpc::internal::ClientAsyncStreamingInterface.

Definition at line 591 of file grpcpp/impl/codegen/async_stream.h.

◆ operator delete() [1/2]

template<class W , class R >
static void grpc::ClientAsyncReaderWriter< W, R >::operator delete ( void *  ,
std::size_t  size 
)
inlinestatic

Definition at line 517 of file grpcpp/impl/codegen/async_stream.h.

◆ operator delete() [2/2]

template<class W , class R >
static void grpc::ClientAsyncReaderWriter< W, R >::operator delete ( void *  ,
void *   
)
inlinestatic

Definition at line 526 of file grpcpp/impl/codegen/async_stream.h.

◆ Read()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::Read ( R *  msg,
void *  tag 
)
inlineoverridevirtual

Read a message of type R into msg. Completion will be notified by tag on the associated completion queue. This is thread-safe with respect to Write or WritesDone methods. It should not be called concurrently with other streaming APIs on the same stream. It is not meaningful to call it concurrently with another AsyncReaderInterface::Read on the same stream since reads on the same stream are delivered in order.

Parameters
[out]msgWhere to eventually store the read message.
[in]tagThe tag identifying the operation.

Side effect: note that this method attempt to receive initial metadata for a stream if it hasn't yet been received.

Implements grpc::internal::AsyncReaderInterface< R >.

Definition at line 550 of file grpcpp/impl/codegen/async_stream.h.

◆ ReadInitialMetadata()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::ReadInitialMetadata ( void *  tag)
inlineoverridevirtual

See the ClientAsyncStreamingInterface.ReadInitialMetadata method for semantics of this method.

Side effect:

  • upon receiving initial metadata from the server, the ClientContext is updated with it, and then the receiving initial metadata can be accessed through this ClientContext.

Implements grpc::internal::ClientAsyncStreamingInterface.

Definition at line 541 of file grpcpp/impl/codegen/async_stream.h.

◆ StartCall()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::StartCall ( void *  tag)
inlineoverridevirtual

Start the call that was set up by the constructor, but only if the constructor was invoked through the "Prepare" API which doesn't actually start the call

Implements grpc::internal::ClientAsyncStreamingInterface.

Definition at line 528 of file grpcpp/impl/codegen/async_stream.h.

◆ StartCallInternal()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::StartCallInternal ( void *  tag)
inlineprivate

Definition at line 613 of file grpcpp/impl/codegen/async_stream.h.

◆ Write() [1/2]

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::Write ( const W msg,
grpc::WriteOptions  options,
void *  tag 
)
inlineoverridevirtual

Request the writing of msg using WriteOptions options with identifying tag tag.

Only one write may be outstanding at any given time. This means that after calling Write, one must wait to receive tag from the completion queue BEFORE calling Write again. WriteOptions options is used to set the write options of this message. This is thread-safe with respect to AsyncReaderInterface::Read

gRPC doesn't take ownership or a reference to msg, so it is safe to to deallocate once Write returns.

Parameters
[in]msgThe message to be written.
[in]optionsThe WriteOptions to be used to write this message.
[in]tagThe tag identifying the operation.

Implements grpc::internal::AsyncWriterInterface< W >.

Definition at line 568 of file grpcpp/impl/codegen/async_stream.h.

◆ Write() [2/2]

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::Write ( const W msg,
void *  tag 
)
inlineoverridevirtual

Request the writing of msg with identifying tag tag.

Only one write may be outstanding at any given time. This means that after calling Write, one must wait to receive tag from the completion queue BEFORE calling Write again. This is thread-safe with respect to AsyncReaderInterface::Read

gRPC doesn't take ownership or a reference to msg, so it is safe to to deallocate once Write returns.

Parameters
[in]msgThe message to be written.
[in]tagThe tag identifying the operation.

Implements grpc::internal::AsyncWriterInterface< W >.

Definition at line 560 of file grpcpp/impl/codegen/async_stream.h.

◆ WritesDone()

template<class W , class R >
void grpc::ClientAsyncReaderWriter< W, R >::WritesDone ( void *  tag)
inlineoverridevirtual

Signal the client is done with the writes (half-close the client stream). Thread-safe with respect to AsyncReaderInterface::Read

Parameters
[in]tagThe tag identifying the operation.

Implements grpc::ClientAsyncReaderWriterInterface< W, R >.

Definition at line 580 of file grpcpp/impl/codegen/async_stream.h.

Friends And Related Function Documentation

◆ internal::ClientAsyncReaderWriterFactory< W, R >

template<class W , class R >
friend class internal::ClientAsyncReaderWriterFactory< W, R >
friend

Definition at line 602 of file grpcpp/impl/codegen/async_stream.h.

Member Data Documentation

◆ call_

template<class W , class R >
grpc::internal::Call grpc::ClientAsyncReaderWriter< W, R >::call_
private

Definition at line 625 of file grpcpp/impl/codegen/async_stream.h.

◆ context_

template<class W , class R >
grpc::ClientContext* grpc::ClientAsyncReaderWriter< W, R >::context_
private

Definition at line 624 of file grpcpp/impl/codegen/async_stream.h.

◆ finish_ops_

Definition at line 638 of file grpcpp/impl/codegen/async_stream.h.

◆ meta_ops_

Definition at line 628 of file grpcpp/impl/codegen/async_stream.h.

◆ read_ops_

Definition at line 631 of file grpcpp/impl/codegen/async_stream.h.

◆ started_

template<class W , class R >
bool grpc::ClientAsyncReaderWriter< W, R >::started_
private

Definition at line 626 of file grpcpp/impl/codegen/async_stream.h.

◆ write_ops_

Definition at line 635 of file grpcpp/impl/codegen/async_stream.h.


The documentation for this class was generated from the following file:


grpc
Author(s):
autogenerated on Fri May 16 2025 03:03:30