GCC Code Coverage Report


Directory: codebase/
File: codebase/library/include/public/lib.AbstractTask.hpp
Date: 2023-03-16 04:37:09
Exec Total Coverage
Lines: 8 8 100.0%
Functions: 4 4 100.0%
Branches: 0 0 -%

Line Branch Exec Source
1 /**
2 * @file lib.AbstractTask.hpp
3 * @author Sergey Baigudin, sergey@baigudin.software
4 * @copyright 2022, Sergey Baigudin, Baigudin Software
5 */
6 #ifndef LIB_ABSTRACTTASK_HPP_
7 #define LIB_ABSTRACTTASK_HPP_
8
9 #include "lib.NonCopyable.hpp"
10 #include "api.Task.hpp"
11
12 namespace eoos
13 {
14 namespace lib
15 {
16
17 /**
18 * @class AbstractTask<A>
19 * @brief Abstract task for the thread class.
20 *
21 * @tparam A Heap memory allocator class.
22 */
23 template <class A = Allocator>
24 class AbstractTask : public NonCopyable<A>, public api::Task
25 {
26 typedef NonCopyable<A> Parent;
27
28 public:
29
30 /**
31 * @brief Constructor.
32 */
33 63 AbstractTask()
34 : NonCopyable<A>()
35 63 , api::Task() {
36 63 }
37
38 /**
39 * @brief Destructor.
40 */
41 126 virtual ~AbstractTask() {}
42
43 /**
44 * @copydoc eoos::api::Task::start()
45 */
46 virtual void start() = 0;
47
48 /**
49 * @copydoc eoos::api::Object::isConstructed()
50 */
51 35 virtual bool_t isConstructed() const
52 {
53 35 return Parent::isConstructed();
54 }
55
56 /**
57 * @copydoc eoos::api::Task::getStackSize()
58 */
59 6 virtual size_t getStackSize() const
60 {
61 6 return 0U;
62 }
63
64 };
65
66 } // namespace lib
67 } // namespace eoos
68 #endif // LIB_ABSTRACTTASK_HPP_
69