From 90e935af6e2de9999cd714063d20f81705e09aaa Mon Sep 17 00:00:00 2001 From: xethyrion Date: Thu, 24 Nov 2016 20:07:19 +0200 Subject: [PATCH] Add files via upload --- ipld_tut.c | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 ipld_tut.c diff --git a/ipld_tut.c b/ipld_tut.c new file mode 100644 index 0000000..969b3d8 --- /dev/null +++ b/ipld_tut.c @@ -0,0 +1,89 @@ +#include "ipld.h" +int main() +{ + //TURN DEBUG MODE ON/OFF + NODE_H_DEBUG = 0; + + //Load a node from string: + char * str = "{\"@context\": \"/ipfs/Qmf1ec6n9f8kW8JTLjqaZceJVpDpZD4L3aPoJFvssBE7Eb/merkleweb\", \"@type\": \"node\", \"FIELD1\": { \"@value\": \"Qmabcbcbdba\", \"@type\": \"mlink\" }, \"FIELD2\": { \"@value\": \"Qmabcbcbdba2\", \"@type\": \"mlink\" } }"; + struct NODE A; + A = LOAD_NODE(str); + + //Get node contents back to a string: + char * lol; + lol = json_dumps(A.obj, JSON_INDENT(1) | JSON_PRESERVE_ORDER); + printf("NODE CONTENTS: \n------------\n%s\n------------\n", lol); + free(lol); // Never forget to free the char * after being done with it. + + //Get type of node, if any. + char typeget[1000]; //Way bigger than needed. + bzero(typeget,1000); //No mem errors ofc. + nType(typeget, A.obj);//Check for type if any + printf("type: %s\n", typeget); + + //Get context of node. + char ctxget[1000]; //Way bigger than needed + bzero(ctxget, 1000); + nContext(ctxget, A.obj); + printf("ctx: %s\n", ctxget); + + //Extracting Links + char * links[666]; + for(int i=0;i<666;i++){ links[i] = NULL;} + size_t linknum; + linknum = nLinks(links, A.obj); //These all need to be freed, hence the linknum! + printf("Linknum: %lu\n", linknum); + for(int i=0; i