From ab7dbf81bc03b0e01074a7fd1e25bcd18292907d Mon Sep 17 00:00:00 2001 From: Katharina Fey Date: Sat, 27 Aug 2016 01:08:08 +0200 Subject: Updating API part 2 --- CMakeLists.txt | 2 +- lib/dyn_utils.c | 18 +++++++++--------- test/main.c | 58 +++++++++++++++++++++++++++++++++++---------------------- 3 files changed, 46 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f6d416..e738040 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,7 +12,7 @@ set(CMAKE_BUILD_TYPE Debug) # Create our project for further reference project(libdyntree) -set(DYN_TREE_SRC lib/dyn_tree.c lib/dyn_utils.c) +set(DYN_TREE_SRC lib/dtree.c lib/dyn_utils.c) # Define our library in cmake add_library(libdyntree SHARED ${DYN_TREE_SRC}) diff --git a/lib/dyn_utils.c b/lib/dyn_utils.c index 9e27ed0..ae00bf9 100644 --- a/lib/dyn_utils.c +++ b/lib/dyn_utils.c @@ -1,4 +1,4 @@ -#include +#include #include #include @@ -294,7 +294,7 @@ dt_err dtree_decode_json(dtree *(*data), const char *jd) parents[0] = new_root; ctr = 0; } else { - dtree_addrecursive(parents[ctr], &new_root); + dtree_addlist(parents[ctr], &new_root); parents[++ctr] = new_root; } @@ -309,7 +309,7 @@ dt_err dtree_decode_json(dtree *(*data), const char *jd) if(in_str) break; // Ignore if we're in a string dtree *new_root; - dtree_addrecursive(parents[ctr], &new_root); + dtree_addlist(parents[ctr], &new_root); parents[++ctr] = new_root; // Open a block @@ -328,10 +328,10 @@ dt_err dtree_decode_json(dtree *(*data), const char *jd) dtree *key, *val; dtree *rec_entry; - dtree_addrecursive(parents[ctr], &rec_entry); + dtree_addlist(parents[ctr], &rec_entry); dtree_addpair(rec_entry, &key, &val); - dtree_addliteral(key, curr_key, REAL_STRLEN(curr_key)); - dtree_addliteral(val, curr_str, REAL_STRLEN(curr_str)); + dtree_addliteral(key, curr_key); + dtree_addliteral(val, curr_str); /* Clear the pointer reference */ rec_entry = key = val = NULL; @@ -369,10 +369,10 @@ dt_err dtree_decode_json(dtree *(*data), const char *jd) dtree *key, *val; dtree *rec_entry; - dtree_addrecursive(parents[ctr], &rec_entry); + dtree_addlist(parents[ctr], &rec_entry); dtree_addpair(rec_entry, &key, &val); - dtree_addliteral(key, curr_key, REAL_STRLEN(curr_key)); - dtree_addliteral(val, curr_str, REAL_STRLEN(curr_str)); + dtree_addliteral(key, curr_key); + dtree_addliteral(val, curr_str); /* Clear the pointer reference */ rec_entry = key = val = NULL; diff --git a/test/main.c b/test/main.c index 6090e94..240de6c 100644 --- a/test/main.c +++ b/test/main.c @@ -1,6 +1,6 @@ #include -#include +#include /** * A small test that creates a tree, splits the nodes @@ -44,6 +44,20 @@ int main(void) dtree *data; dtree_decode_json(&data, json); + /* Copy structures */ + + dtree *key, *val; + dtree *root = dtree_allocpair_new(&key, &val); + + dtree_addliteral(key, "Core Data"); + dtree_addliteral(val, "dtree is cool!"); + + dtree *root_copy; + dtree_copy(root, &root_copy); + + printf("Copy complete?\n"); + + end: exit: printf("==== done ====\n"); @@ -64,7 +78,7 @@ dt_err split_and_merge() /* Add child as a recursive node to root */ dtree *child; - err = dtree_addrecursive(root, &child); + err = dtree_addlist(root, &child); if(err) goto exit; /* Make child a literal node containing the works of shakespeare */ @@ -78,7 +92,7 @@ dt_err split_and_merge() "That flesh is heir to, 'tis a consummation\n" "Devoutly to be wish'd. To die, to sleep;"; - err = dtree_addliteral(child, hamlet, REAL_STRLEN(hamlet)); + err = dtree_addliteral(child, hamlet); if(err) goto exit; /* Split our tree into two single-nodes */ @@ -104,13 +118,13 @@ dt_err search_for_payload() if(err) goto exit; const char *string = "This is some data!"; - err = dtree_addrecursive(root, &a); + err = dtree_addlist(root, &a); if(err) goto exit; - err = dtree_addliteral(a, string, REAL_STRLEN(string)); + err = dtree_addliteral(a, string); if(err) goto exit; - err = dtree_addrecursive(root, &b); + err = dtree_addlist(root, &b); if(err) goto exit; err = dtree_addnumeral(b, 1337); @@ -137,25 +151,25 @@ dt_err json_encode(char *json) { if (err) goto exit; dtree *key, *val; - err = dtree_addrecursive(root, &a); + err = dtree_addlist(root, &a); if (err) goto exit; - err = dtree_addrecursive(root, &b); + err = dtree_addlist(root, &b); if (err) goto exit; - err = dtree_addrecursive(root, &c); + err = dtree_addlist(root, &c); if (err) goto exit; err = dtree_addpair(a, &key, &val); if (err) goto exit; - err = dtree_addliteral(key, "Server Address", REAL_STRLEN("Server Address")); + err = dtree_addliteral(key, "Server Address"); if (err) goto exit; - err = dtree_addliteral(val, "https://github.com", REAL_STRLEN("https://github.com")); + err = dtree_addliteral(val, "https://github.com"); if (err) goto exit; key = val = NULL; err = dtree_addpair(b, &key, &val); if (err) goto exit; - err = dtree_addliteral(key, "Server Port", REAL_STRLEN("Server Port")); + err = dtree_addliteral(key, "Server Port"); if (err) goto exit; err = dtree_addnumeral(val, 8080); if (err) goto exit; @@ -164,21 +178,21 @@ dt_err json_encode(char *json) { err = dtree_addpair(c, &key, &val); if (err) goto exit; - err = dtree_addliteral(key, "Users", REAL_STRLEN("Users")); + err = dtree_addliteral(key, "Users"); if (err) goto exit; dtree *sbrec, *sbrec2; - err = dtree_addrecursive(val, &sbrec); + err = dtree_addlist(val, &sbrec); if (err) goto exit; - err = dtree_addrecursive(val, &sbrec2); + err = dtree_addlist(val, &sbrec2); if (err) goto exit; dtree *subkey, *subval; err = dtree_addpair(sbrec, &subkey, &subval); if (err) goto exit; - err = dtree_addliteral(subkey, "spacekookie", REAL_STRLEN("spacekookie")); + err = dtree_addliteral(subkey, "spacekookie"); if (err) goto exit; - err = dtree_addliteral(subval, "Admin", REAL_STRLEN("Admin")); + err = dtree_addliteral(subval, "Admin"); if (err) goto exit; key = val = NULL; @@ -186,9 +200,9 @@ dt_err json_encode(char *json) { dtree *subkey2, *subval2; err = dtree_addpair(sbrec2, &subkey2, &subval2); if (err) goto exit; - err = dtree_addliteral(subkey2, "jane", REAL_STRLEN("jane")); + err = dtree_addliteral(subkey2, "jane"); if (err) goto exit; - err = dtree_addliteral(subval2, "normal", REAL_STRLEN("normal")); + err = dtree_addliteral(subval2, "normal"); if (err) goto exit; err = dtree_encode_set(root, DYNTREE_JSON_MINIFIED); @@ -206,17 +220,17 @@ dt_err test_shortcut_functions() dtree *key, *val; dtree *root = dtree_allocpair_new(&key, &val); - dtree_addliteral(key, "Address", REAL_STRLEN("Address")); + dtree_addliteral(key, "Address"); // dtree_addliteral(val, "Berlin 10555", REAL_STRLEN("Berlin 10555")); dtree *list_root; - dtree **list = dtree_alloc_reclist(&list_root, 4); // Allocate 4 nodes + dtree **list = dtree_alloc_listlist(&list_root, 4); // Allocate 4 nodes int i; for(i = 0; i < 4; i++){ char message[32]; sprintf(message, "Message no.%d", i); - dtree_addliteral(list[i], message, REAL_STRLEN(message)); + dtree_addliteral(list[i], message); } dtree_merge_trees(val, list_root); -- cgit v1.2.3