libGimbal 0.1.0
C17-Based Extended Standard Library and Cross-Language Runtime Framework
Loading...
Searching...
No Matches
gimbal_task.h
Go to the documentation of this file.
1/*! \file
2 * \brief GblTask high-level concurrent runnable object
3 * \ingroup core
4 *
5 * \todo
6 * - implement me (designing API currently, unimplemented)
7 *
8 * \author Falco Girgis
9 */
10
11#ifndef GIMBAL_TASK_H
12#define GIMBAL_TASK_H
13
14#include "../meta/instances/gimbal_object.h"
15
16#define GBL_SELF_TYPE GblTask
17
19
22
23typedef int8_t GblPriority;
24
25/*! \struct GblTaskClass
26 * \extends GblObjectClass
27 * \brief GblClass structure for GblTask
28 *
29 * GblTaskClass provides overridadlbe virtual
30 * methods for invoking custom logic based on
31 * different types of scheduling events, as well
32 * as a method for getting the priority for a
33 * GblTask.
34 *
35 * \sa GblTask
36 */
37GBL_CLASS_DERIVE(GblTask, GblObject)
38 GBL_RESULT (*pFnExec) (GBL_SELF);
39 GBL_RESULT (*pFnCancel) (GBL_SELF);
40 GBL_RESULT (*pFnTimeout) (GBL_SELF);
41 GBL_RESULT (*pFnPriority)(GBL_CSELF, GblPriority* pPriority);
43
44/*! \struct GblTask
45 * \extends GblObject
46 * \brief High-level schedulable concurrently-executing operation
47 *
48 * No public members.
49 *
50 * \sa GblTaskClass
51 */
53
54GBL_EXPORT GblPriority GblTask_priority(GBL_CSELF) GBL_NOEXCEPT;
55
56
58
59#undef GBL_SELF_TYPE
60
61#endif // GIMBAL_TASK_H
#define GBL_NOEXCEPT
#define GBL_DECLS_BEGIN
#define GBL_FORWARD_DECLARE_STRUCT(S)
#define GBL_CLASS_DERIVE(...)
#define GBL_EXPORT
#define GBL_CLASS_END
#define GBL_INSTANCE_DERIVE_EMPTY(derived, base)
High-level schedulable concurrently-executing operation.
Definition gimbal_task.h:52