Very Simple Kernel
0.1.0
Loading...
Searching...
No Matches
vsk_State.h
Go to the documentation of this file.
1
/**
2
* @file
3
*/
4
#ifndef VSK_STATE_H
5
#define VSK_STATE_H
6
/**
7
* @ingroup vsk
8
* @defgroup vsk_State vsk_State
9
* @{
10
*/
11
12
/**
13
* @brief State
14
*/
15
typedef
struct
vsk_State
vsk_State_t
;
16
17
#include "
vsk_StateContext.h
"
18
#include <stdbool.h>
19
20
/**
21
* @brief On enter callback
22
*/
23
typedef
void (*
vsk_State_OnEnter_t
)(
vsk_State_t
*
const
self);
24
25
/**
26
* @brief On exit callback
27
*/
28
typedef
void (*
vsk_State_OnExit_t
)(
vsk_State_t
*
const
self);
29
30
/**
31
* @brief State
32
*/
33
struct
vsk_State
{
34
vsk_StateContext_t
*
stateContext
;
/**< State context */
35
vsk_State_OnEnter_t
onEnter
;
/**< On enter callback */
36
vsk_State_OnExit_t
onExit
;
/**< On exit callback */
37
};
38
39
/**
40
* @brief Initializes a state
41
*
42
* @param self State reference
43
* @param stateContext Corresponding state context
44
* @return Initialized state reference
45
*/
46
vsk_State_t
*
vsk_State_init
(
47
vsk_State_t
*
const
self,
vsk_StateContext_t
*
const
stateContext
48
);
49
50
/**
51
* @brief Executes entry logic
52
*
53
* @param self State reference
54
*/
55
void
vsk_State_onEnter
(
vsk_State_t
*
const
self);
56
57
/**
58
* @brief Executes exit logic
59
*
60
* @param self State reference
61
*/
62
void
vsk_State_onExit
(
vsk_State_t
*
const
self);
63
64
/** @} */
65
#endif
// VSK_STATE_H
vsk_State_onExit
void vsk_State_onExit(vsk_State_t *const self)
Executes exit logic.
Definition
vsk_State.c:28
vsk_State_onEnter
void vsk_State_onEnter(vsk_State_t *const self)
Executes entry logic.
Definition
vsk_State.c:20
vsk_State_init
vsk_State_t * vsk_State_init(vsk_State_t *const self, vsk_StateContext_t *const stateContext)
Initializes a state.
Definition
vsk_State.c:7
vsk_State_OnExit_t
void(* vsk_State_OnExit_t)(vsk_State_t *const self)
On exit callback.
Definition
vsk_State.h:28
vsk_State_OnEnter_t
void(* vsk_State_OnEnter_t)(vsk_State_t *const self)
On enter callback.
Definition
vsk_State.h:23
vsk_StateContext
State context.
Definition
vsk_StateContext.h:22
vsk_State
State.
Definition
vsk_State.h:33
vsk_State::stateContext
vsk_StateContext_t * stateContext
Definition
vsk_State.h:34
vsk_State::onExit
vsk_State_OnExit_t onExit
Definition
vsk_State.h:36
vsk_State::onEnter
vsk_State_OnEnter_t onEnter
Definition
vsk_State.h:35
vsk_StateContext.h
src
vsk_State.h
Generated by
1.12.0