Call the functor associated with asynchronous operations when they complete.
Constructors
CompletionQueue
CompletionQueue
Parameter | |
---|---|
Name | Description |
impl |
std::shared_ptr< internal::CompletionQueueImpl >
|
Functions
Run
Run the completion queue event loop.
Note that more than one thread can call this member function, to create a pool of threads completing asynchronous operations.
Returns | |
---|---|
Type | Description |
void |
Shutdown
Terminate the completion queue event loop.
Returns | |
---|---|
Type | Description |
void |
CancelAll
Cancel all pending operations.
Returns | |
---|---|
Type | Description |
void |
MakeDeadlineTimer
Create a timer that fires at deadline
.
Parameter | |
---|---|
Name | Description |
deadline |
std::chrono::system_clock::time_point
when should the timer expire. |
Returns | |
---|---|
Type | Description |
google::cloud::future< StatusOr< std::chrono::system_clock::time_point > > |
a future that becomes satisfied after `deadline`. The result of the future is the time at which it expired, or an error [Status](xref:classgoogle_1_1cloud_1_1Status) if the timer did not run to expiration (e.g. it was cancelled). |
MakeRelativeTimer
Create a timer that fires after the duration
.
Parameters | |
---|---|
Name | Description |
duration |
std::chrono::duration< Rep, Period >
when should the timer expire relative to the current time. |
typename Rep |
a placeholder to match the Rep tparam for |
typename Period |
a placeholder to match the Period tparam for |
Returns | |
---|---|
Type | Description |
future< StatusOr< std::chrono::system_clock::time_point > > |
a future that becomes satisfied after `duration` time has elapsed. The result of the future is the time at which it expired, or an error [Status](xref:classgoogle_1_1cloud_1_1Status) if the timer did not run to expiration (e.g. it was cancelled). |
MakeUnaryRpc
Make an asynchronous unary RPC.
Parameters | |
---|---|
Name | Description |
async_call |
AsyncCallType
a callable to start the asynchronous RPC. |
request |
Request const &
the contents of the request. |
context |
std::unique_ptr< grpc::ClientContext >
an initialized request context to make the call. |
typename AsyncCallType |
the type of async_call. It must be invocable with |
typename Request |
the type of the request parameter in the gRPC. |
typename Sig |
|
typename Response |
|
typename std::enable_if< sig::value,="" int="">::type |
|
Returns | |
---|---|
Type | Description |
future< StatusOr< Response > > |
a future that becomes satisfied when the operation completes. |
MakeStreamingReadRpc
Make an asynchronous streaming read RPC.
Reading from the stream starts automatically, and the handler is notified of all interesting events in the stream. Note that then handler is called by any thread blocked on this object's Run() member function. However, only one callback in the handler is called at a time.
Parameters | |
---|---|
Name | Description |
async_call |
AsyncCallType &&
a callable to start the asynchronous RPC. |
request |
Request const &
the contents of the request. |
context |
std::unique_ptr< grpc::ClientContext >
an initialized request context to make the call. |
on_read |
OnReadHandler &&
the callback to be invoked on each successful Read(). |
on_finish |
OnFinishHandler &&
the callback to be invoked when the stream is closed. |
typename AsyncCallType |
the type of async_call. It must be invocable with parameters |
typename Request |
the type of the request in the streaming RPC. |
typename Response |
the type of the response in the streaming RPC. |
typename OnReadHandler |
the type of the |
typename OnFinishHandler |
the type of the |
Returns | |
---|---|
Type | Description |
std::shared_ptr< AsyncOperation > |
RunAsync
Asynchronously run a functor on a thread Run()
ning the CompletionQueue
.
Parameters | |
---|---|
Name | Description |
functor |
Functor &&
the value of the functor. |
typename Functor |
the functor to call on the CompletionQueue thread. It must satisfy the |
typename std::enable_if<>< functor="">::value, int >::type |
|
Returns | |
---|---|
Type | Description |
void |
RunAsync
Asynchronously run a functor on a thread Run()
ning the CompletionQueue
.
Parameters | |
---|---|
Name | Description |
functor |
Functor &&
the value of the functor. |
typename Functor |
the functor to call on the CompletionQueue thread. It must satisfy the |
typename std::enable_if<>< functor="">::value, int >::type |
|
Returns | |
---|---|
Type | Description |
void |
AsyncWaitConnectionReady
Asynchronously wait for a connection to become ready.
Parameters | |
---|---|
Name | Description |
channel |
std::shared_ptr< grpc::Channel >
the channel on which to wait for state changes |
deadline |
std::chrono::system_clock::time_point
give up waiting for the state change if this deadline passes |
Returns | |
---|---|
Type | Description |
future< Status > |
`future<>` which will be satisfied when either of these events happen: (a) the connection is ready, (b) the connection permanently failed, (c) deadline passes before (a) or (b) happen; the future will be satisfied with [`StatusCode::kOk`](xref:namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847ae69fa9a656f76dd8a4d89f21992b2d3a) for (a), [`StatusCode::kCancelled`](xref:namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847a971493a769ad0aed23946733ede4a8f1) for (b) and [`StatusCode::kDeadlineExceeded`](xref:namespacegoogle_1_1cloud_1a90e17f75452470f0f3ee1a06ffe58847a4d40d05ef9a0c7b22fb80d1bbf8a72df) for (c) |