#include "interface.h" #include "msg.h" #include #include #include struct interface_definition *interface_definition_create(const char *name) { struct interface_definition *out = malloc(sizeof *out); if (!out) { return NULL; } memset(out, 0x0, sizeof *out); out->if_name = b_strdup(name); return out; } void interface_definition_destroy(struct interface_definition *iface) { b_queue_entry *entry = b_queue_pop_front(&iface->if_msg); while (entry) { struct msg_definition *msg = b_unbox(struct msg_definition, entry, msg_entry); msg_definition_destroy(msg); entry = b_queue_pop_front(&iface->if_msg); } free(iface->if_name); free(iface); } bool interface_definition_has_msg( const struct interface_definition *iface, const char *name) { b_queue_entry *entry = b_queue_first(&iface->if_msg); while (entry) { struct msg_definition *msg = b_unbox(struct msg_definition, entry, msg_entry); if (!strcmp(msg->msg_name, name)) { return true; } entry = b_queue_next(entry); } return false; } void interface_definition_add_msg( struct interface_definition *iface, struct msg_definition *msg) { b_queue_push_back(&iface->if_msg, &msg->msg_entry); }