diff options
Diffstat (limited to 'src/base/state.h')
| -rw-r--r-- | src/base/state.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/base/state.h b/src/base/state.h new file mode 100644 index 0000000..3bbccb5 --- /dev/null +++ b/src/base/state.h @@ -0,0 +1,72 @@ +#pragma once + +#include "../jprint.h" + +struct +{ + char *Address; + char *Hook; +} typedef endpoint; + +struct +{ + char *Node; + char *Interface; +} typedef endpoint_configuration; + +struct +{ + endpoint_configuration Peer[2]; +} typedef link_configuration; + +struct +{ + char *Name; + link_configuration Configuration; + endpoint Peer[2]; +} typedef link_; + +struct +{ + char *Module; + ucl_object_t *Configuration; +} typedef node_configuration; + +struct +{ + char *Name; + node_configuration Configuration; + ucl_object_t *Data; +} typedef node; + +struct +{ + size_t NodeCount; + node *Node; + size_t LinkCount; + link_ *Link; +} typedef experiment; + +void Free_endpoint(endpoint *); +void Free_endpoint_configuration(endpoint_configuration *); +void Free_link_configuration(link_configuration *); +void Free_link(link_ *); +void Free_node_configuration(node_configuration *); +void Free_node(node *); +void Free_experiment(experiment *); + +char *Parse_endpoint(endpoint *, ucl_object_t const *, char const *Position); +char *Parse_endpoint_configuration(endpoint_configuration *, ucl_object_t const *, char const *Position); +char *Parse_link_configuration(link_configuration *, ucl_object_t const *, char const *Position); +char *Parse_link(link_ *, ucl_object_t const *, char const *Position); +char *Parse_node_configuration(node_configuration *, ucl_object_t const *, char const *Position); +char *Parse_node(node *, ucl_object_t const *, char const *Position); +char *Parse_experiment(experiment *, ucl_object_t const *, char const *Position); + +void Save_endpoint(jprint_state *, endpoint const *); +void Save_endpoint_configuration(jprint_state *, endpoint_configuration const *); +void Save_link_configuration(jprint_state *, link_configuration const *); +void Save_link(jprint_state *, link_ const *); +void Save_node_configuration(jprint_state *, node_configuration const *); +void Save_node(jprint_state *, node const *); +void Save_experiment(jprint_state *, experiment const *); |
