summaryrefslogtreecommitdiff
path: root/src/module.bridge/state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/module.bridge/state.c')
-rw-r--r--src/module.bridge/state.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/module.bridge/state.c b/src/module.bridge/state.c
new file mode 100644
index 0000000..c7780f3
--- /dev/null
+++ b/src/module.bridge/state.c
@@ -0,0 +1,58 @@
+#include "state.h"
+
+// FREE
+
+void
+Free_configuration(configuration *E)
+{
+ UNUSED(E);
+}
+
+void
+Free_data(data *E)
+{
+ UNUSED(E);
+}
+
+// PARSE
+
+char *
+Parse_configuration(configuration *E, ucl_object_t const *root, char const *Position)
+{
+ char *Error;
+ UCL_CHECK_ROOT(OBJECT);
+ UNUSED(E);
+ return NULL;
+error:
+ return Error;
+}
+
+char *
+Parse_data(data *E, ucl_object_t const *root, char const *Position)
+{
+ char *Error;
+ UCL_CHECK_ROOT(OBJECT);
+ ucl_object_t const *id = ucl_object_lookup(root, "id");
+ UCL_CHECK(id, INT);
+ s64 ID = ucl_object_toint(id);
+ if(ID < 0 || ID > UINT32_MAX)
+ {
+ asprintf(&Error, "%s id invalid (%ld)", Position, ID);
+ goto error;
+ }
+ E->ID = (u32)ID;
+ return NULL;
+error:
+ return Error;
+}
+
+// SAVE
+
+void
+Save_data(jprint_state *S, data const *E)
+{
+ JPrintObjectBegin(S);
+ JPrintMember(S, "id");
+ JPrint_ssize_t(S, E->ID);
+ JPrintObjectEnd(S);
+}