summaryrefslogtreecommitdiff
path: root/src/base/state.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/state.h')
-rw-r--r--src/base/state.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/base/state.h b/src/base/state.h
index 3bbccb5..82db1e0 100644
--- a/src/base/state.h
+++ b/src/base/state.h
@@ -14,9 +14,12 @@ struct
char *Interface;
} typedef endpoint_configuration;
+NAMED_ENUM(link_type, direct, pipe, );
+
struct
{
endpoint_configuration Peer[2];
+ link_type Type;
} typedef link_configuration;
struct
@@ -24,6 +27,16 @@ struct
char *Name;
link_configuration Configuration;
endpoint Peer[2];
+ union
+ {
+ struct
+ {
+ } direct;
+ struct
+ {
+ u32 ID;
+ } pipe;
+ };
} typedef link_;
struct
@@ -47,6 +60,8 @@ struct
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 *);
@@ -57,6 +72,7 @@ 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);