Class google::cloud::CompletionQueue (2.10.1)

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 duration type, the semantics of this template parameter are documented in std::chrono::duration<> (in brief, the underlying arithmetic type used to store the number of ticks), for our purposes it is simply a formal parameter.

typename Period

a placeholder to match the Period tparam for duration type, the semantics of this template parameter are documented in std::chrono::duration<> (in brief, the length of the tick in seconds, expressed as a std::ratio<> ), for our purposes it is simply a formal parameter.

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 (grpc::ClientContext*, RequestType const&, grpc::CompletionQueue*) . Furthermore, it should return a std::unique_ptr<grpc::ClientAsyncResponseReaderInterface<Response>>> . These requirements are verified by internal::CheckAsyncUnaryRpcSignature<> , and this function is excluded from overload resolution if the parameters do not meet these requirements.

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 (grpc::ClientContext*, RequestType const&, grpc::CompletionQueue*) . Furthermore, it should return a type convertible to std::unique_ptr<grpc::ClientAsyncReaderInterface<Response>>> . These requirements are verified by internal::AsyncStreamingReadRpcUnwrap<> , and this function is excluded from overload resolution if the parameters do not meet these requirements.

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 on_read callback.

typename OnFinishHandler

the type of the on_finish callback.

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 void() signature.

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 void() signature.

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)
Design a Mobile Site
View Site in Mobile | Classic
Share by: