X-Git-Url: http://git.droids-corp.org/?p=protos%2Flibecoli.git;a=blobdiff_plain;f=src%2Fecoli_complete.c;fp=src%2Fecoli_complete.c;h=22459bbb0d1804275f3c2e114b4f001fc107fd4d;hp=e2f150a4b2df924680f699927e90a5effa5ec2b7;hb=dcc0daee87364ab2e0b312829c6dd612c33e6a54;hpb=d9d05d35bbf9bee36d9ce2b8329b5e2a6a19d397 diff --git a/src/ecoli_complete.c b/src/ecoli_complete.c index e2f150a..22459bb 100644 --- a/src/ecoli_complete.c +++ b/src/ecoli_complete.c @@ -34,6 +34,29 @@ struct ec_comp_item { struct ec_dict *attrs; }; +TAILQ_HEAD(ec_comp_item_list, ec_comp_item); + +struct ec_comp_group { + TAILQ_ENTRY(ec_comp_group) next; + const struct ec_node *node; + struct ec_comp_item_list items; + struct ec_parse *state; + struct ec_dict *attrs; +}; + +TAILQ_HEAD(ec_comp_group_list, ec_comp_group); + +struct ec_comp { + unsigned count; + unsigned count_full; + unsigned count_partial; + unsigned count_unknown; + struct ec_parse *cur_state; + struct ec_comp_group *cur_group; + struct ec_comp_group_list groups; + struct ec_dict *attrs; +}; + struct ec_comp *ec_comp(struct ec_parse *state) { struct ec_comp *comp = NULL; @@ -60,11 +83,21 @@ struct ec_comp *ec_comp(struct ec_parse *state) return NULL; } -struct ec_parse *ec_comp_get_state(struct ec_comp *comp) +struct ec_parse *ec_comp_get_state(const struct ec_comp *comp) { return comp->cur_state; } +struct ec_comp_group *ec_comp_get_group(const struct ec_comp *comp) +{ + return comp->cur_group; +} + +struct ec_dict *ec_comp_get_attrs(const struct ec_comp *comp) +{ + return comp->attrs; +} + int ec_node_complete_child(const struct ec_node *node, struct ec_comp *comp, @@ -485,6 +518,24 @@ static void ec_comp_group_free(struct ec_comp_group *grp) ec_free(grp); } +const struct ec_node * +ec_comp_group_get_node(const struct ec_comp_group *grp) +{ + return grp->node; +} + +const struct ec_parse * +ec_comp_group_get_state(const struct ec_comp_group *grp) +{ + return grp->state; +} + +const struct ec_dict * +ec_comp_group_get_attrs(const struct ec_comp_group *grp) +{ + return grp->attrs; +} + void ec_comp_free(struct ec_comp *comp) { struct ec_comp_group *grp;