Very Simple Kernel 0.1.0
Loading...
Searching...
No Matches
vsk_ActiveObject.h
Go to the documentation of this file.
1/**
2 * @file
3 */
4#ifndef VSK_ACTIVEOBJECT_H
5#define VSK_ACTIVEOBJECT_H
6/**
7 * @ingroup vsk
8 * @defgroup vsk_ActiveObject vsk_ActiveObject
9 * @{
10 */
11
12/**
13 * @brief Active object
14 */
16
18#include "vsk_StateContext.h"
19#include "vsk_Task.h"
20
21/**
22 * @brief Active object
23 */
25 vsk_StateContext_t stateContext; /**< State context */
26 vsk_Task_t task; /**< Task that runs the active object */
27 vsk_Inbox_t inbox; /**< Inbox in which messages are posted to the active object */
28 struct {
29 vsk_EventSubscription_t onStart; /**< Event subscription for the on start event */
30 } eventSubscriptions;
31};
32
33/**
34 * @brief Initializes an active object
35 *
36 * @param self Active object reference
37 * @param initialState Initial state
38 *
39 * @return Initialized Active object reference
40 */
42 vsk_ActiveObject_t * const self, vsk_State_t * const initialState
43);
44
45/** @} */
46#endif // VSK_ACTIVEOBJECT_H
vsk_ActiveObject_t * vsk_ActiveObject_init(vsk_ActiveObject_t *const self, vsk_State_t *const initialState)
Initializes an active object.
Definition vsk_ActiveObject.c:11
Active object.
Definition vsk_ActiveObject.h:24
vsk_EventSubscription_t onStart
Definition vsk_ActiveObject.h:29
vsk_Task_t task
Definition vsk_ActiveObject.h:26
vsk_StateContext_t stateContext
Definition vsk_ActiveObject.h:25
vsk_Inbox_t inbox
Definition vsk_ActiveObject.h:27
Event subscription.
Definition vsk_EventSubscription.h:23
Inbox.
Definition vsk_Inbox.h:36
State context.
Definition vsk_StateContext.h:22
State.
Definition vsk_State.h:33
Task.
Definition vsk_Task.h:63