GRPC C++
1.66.0
|
Trigger a CompletionQueue event, or asynchronous callback execution, after some deadline. More...
#include <alarm.h>
Public Member Functions | |
Alarm () | |
Create an unset Alarm. More... | |
~Alarm () override | |
Destroy the given completion queue alarm, cancelling it in the process. More... | |
template<typename T > | |
Alarm (grpc::CompletionQueue *cq, const T &deadline, void *tag) | |
DEPRECATED: Create and set a completion queue alarm instance associated to cq. More... | |
template<typename T > | |
void | Set (grpc::CompletionQueue *cq, const T &deadline, void *tag) |
Trigger an alarm instance on completion queue cq at the specified time. More... | |
Alarm (const Alarm &)=delete | |
Alarms aren't copyable. More... | |
Alarm & | operator= (const Alarm &)=delete |
Alarm (Alarm &&rhs) noexcept | |
Alarms are movable. More... | |
Alarm & | operator= (Alarm &&rhs) noexcept |
void | Cancel () |
Cancel a completion queue alarm. More... | |
template<typename T > | |
void | Set (const T &deadline, std::function< void(bool)> f) |
Set an alarm to invoke callback f. More... | |
Trigger a CompletionQueue event, or asynchronous callback execution, after some deadline.
The Alarm API has separate Set methods for CompletionQueues and callbacks, but only one can be used at any given time. After an alarm has been triggered or cancelled, the same Alarm object may reused.
Alarm methods are not thread-safe. Applications must ensure a strict ordering between calls to Set and Cancel. This also implies that any cancellation that occurs before the alarm has been set will have no effect on any future Set calls.
grpc::Alarm::Alarm | ( | ) |
Create an unset Alarm.
|
override |
Destroy the given completion queue alarm, cancelling it in the process.
|
inline |
DEPRECATED: Create and set a completion queue alarm instance associated to cq.
This form is deprecated because it is inherently racy.
|
delete |
Alarms aren't copyable.
|
inlinenoexcept |
Alarms are movable.
void grpc::Alarm::Cancel | ( | ) |
Cancel a completion queue alarm.
Calling this function over an alarm that has already fired has no effect.
|
inline |
Set an alarm to invoke callback f.
The argument to the callback states whether the alarm expired at deadline (true) or was cancelled (false)
|
inline |
Trigger an alarm instance on completion queue cq at the specified time.
Once the alarm expires (at deadline) or it's cancelled (see Cancel), an event with tag tag will be added to cq. If the alarm expired, the event's success bit will be true, false otherwise (ie, upon cancellation).