#pragma once #include "../jprint.h" struct { char *Address; char *Hook; } typedef endpoint; struct { char *Node; char *Interface; } typedef endpoint_configuration; NAMED_ENUM(link_type, direct, pipe, ); struct { endpoint_configuration Peer[2]; link_type Type; } typedef link_configuration; struct { char *Name; link_configuration Configuration; endpoint Peer[2]; union { struct { } direct; struct { u32 ID; } pipe; }; } 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; int FromString_link_type(char const *, link_type *); 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_type(link_type *, 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 *);