#include <userver/engine/task/task_with_result.hpp>
Public Member Functions | |
TaskWithResult ()=default | |
Default constructor. More... | |
TaskWithResult (TaskProcessor &task_processor, Task::Importance importance, Deadline deadline, std::unique_ptr< utils::impl::WrappedCall< T > > &&wrapped_call_ptr) | |
Constructor, for internal use only. More... | |
TaskWithResult (const TaskWithResult &)=delete | |
TaskWithResult & | operator= (const TaskWithResult &)=delete |
TaskWithResult (TaskWithResult &&) noexcept=default | |
TaskWithResult & | operator= (TaskWithResult &&) noexcept=default |
T | Get () noexcept(false) |
Returns (or rethrows) the result of task invocation. After return from this method the task is not valid. More... | |
![]() | |
Task () | |
Default constructor. More... | |
virtual | ~Task () |
Destructor. More... | |
Task (Task &&) noexcept | |
Task & | operator= (Task &&) noexcept |
bool | IsValid () const |
Checks whether this Task object owns an actual task (not State::kInvalid ) More... | |
State | GetState () const |
Gets the task State. | |
bool | IsFinished () const |
Returns whether the task finished execution. | |
void | Wait () const noexcept(false) |
Suspends execution until the task finishes or caller is cancelled. Can be called from coroutine context only. For non-coroutine context use BlockingWait(). More... | |
template<typename Rep , typename Period > | |
void | WaitFor (const std::chrono::duration< Rep, Period > &) const noexcept(false) |
Suspends execution until the task finishes or after the specified timeout or until caller is cancelled. More... | |
template<typename Clock , typename Duration > | |
void | WaitUntil (const std::chrono::time_point< Clock, Duration > &) const noexcept(false) |
Suspends execution until the task finishes or until the specified time point is reached or until caller is cancelled. More... | |
void | WaitUntil (Deadline) const |
Suspends execution until the task finishes or until the specified deadline is reached or until caller is cancelled. More... | |
void | Detach () && |
Detaches task, allowing it to continue execution out of scope; memory safety is much better with concurrent::BackgroundTaskStorage. More... | |
void | RequestCancel () |
Queues task cancellation request. | |
void | SyncCancel () noexcept |
Cancels the task and suspends execution until it is finished. Can be called from coroutine context only. For non-coroutine context use RequestCancel() + BlockingWait(). | |
TaskCancellationReason | CancellationReason () const |
Gets task cancellation reason. | |
void | BlockingWait () const |
Additional Inherited Members | |
![]() | |
enum class | Importance { kNormal , kCritical } |
Task importance. More... | |
enum class | State { kInvalid , kNew , kQueued , kRunning , kSuspended , kCancelled , kCompleted } |
Task state. More... | |
enum class | WaitMode { kSingleWaiter , kMultipleWaiters } |
Task wait mode. More... | |
![]() | |
static const std::string & | GetStateName (State state) |
Asynchronous task with result
Definition at line 30 of file task_with_result.hpp.
|
default |
Default constructor.
Creates an invalid task.
|
inline |
Constructor, for internal use only.
task_processor | task processor used for execution of this task |
importance | specifies whether this task can be auto-cancelled in case of task processor overload |
wrapped_call_ptr | task body |
Definition at line 43 of file task_with_result.hpp.
|
inlinenoexcept |
Returns (or rethrows) the result of task invocation. After return from this method the task is not valid.
WaitInterruptedException | when current_task::IsCancelRequested() and no TaskCancellationBlockers are present. |
TaskCancelledException | if no result is available because the task was cancelled |
Definition at line 62 of file task_with_result.hpp.