27class TaskBuilder
final {
29 TaskBuilder() =
default;
31 TaskBuilder(
const TaskBuilder&) =
default;
33 TaskBuilder(TaskBuilder&&) =
default;
35 TaskBuilder& operator=(
const TaskBuilder&) =
default;
37 TaskBuilder& operator=(TaskBuilder&&) =
default;
41 TaskBuilder&
Critical() USERVER_IMPL_LIFETIME_BOUND;
45 TaskBuilder&
SpanName(std::string&& name) USERVER_IMPL_LIFETIME_BOUND;
51 TaskBuilder&
HideSpan() USERVER_IMPL_LIFETIME_BOUND;
56 TaskBuilder&
NoSpan() USERVER_IMPL_LIFETIME_BOUND;
61 TaskBuilder&
TaskProcessor(engine::TaskProcessor& tp) USERVER_IMPL_LIFETIME_BOUND;
66 TaskBuilder&
Deadline(engine::Deadline deadline) USERVER_IMPL_LIFETIME_BOUND;
80 template <
typename Function,
typename... Args>
81 auto Build(Function&& f, Args&&... args);
90 template <
typename Function,
typename... Args>
94 engine::impl::TaskConfig MakeConfig()
const;
98 utils::impl::SpanWrapCall::HideSpan hide_span,
99 const utils::impl::SourceLocation& location =
utils::impl::SourceLocation::Current()
102 template <
typename Task,
typename Function,
typename... Args>
103 Task BuildTask(Function&& f, Args&&... args);
107 struct HideSpanTag {};
110 engine::TaskProcessor* tp_{
nullptr};
113 engine::Deadline deadline_;
114 std::optional<std::variant<std::string, NoSpanTag, HideSpanTag>> span_;
115 utils::impl::SpanWrapCall::InheritVariables inherit_variables_{
utils::impl::SpanWrapCall::InheritVariables::kYes};
123 return utils::impl::SpanLazyPrvalue(std::move(name), inherit_variables_, hide_span, location);