CCF
Loading...
Searching...
No Matches
basic_task.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "tasks/task.h"
6
7namespace ccf::tasks
8{
9 struct BasicTask : public BaseTask
10 {
11 using Fn = std::function<void()>;
12
14 const std::string name;
15
16 BasicTask(Fn fn_, std::string s = "BasicTask") :
17 fn(std::move(fn_)),
18 name(std::move(s))
19 {}
20
21 void do_task_implementation() override
22 {
23 fn();
24 }
25
26 [[nodiscard]] const std::string& get_name() const override
27 {
28 return name;
29 }
30 };
31
32 template <typename... Ts>
34 {
35 return std::make_shared<BasicTask>(std::forward<Ts>(ts)...);
36 }
37}
Definition basic_task.h:8
Task make_basic_task(Ts &&... ts)
Definition basic_task.h:33
std::shared_ptr< BaseTask > Task
Definition task.h:36
STL namespace.
Definition task.h:15
Definition basic_task.h:10
const std::string name
Definition basic_task.h:14
void do_task_implementation() override
Definition basic_task.h:21
BasicTask(Fn fn_, std::string s="BasicTask")
Definition basic_task.h:16
std::function< void()> Fn
Definition basic_task.h:11
const std::string & get_name() const override
Definition basic_task.h:26
Fn fn
Definition basic_task.h:13