#include #include #include #include #include #include "token/cclass.h" #include "token/packet.h" #include "token/dyntype.h" #include "token/dyntype/hash.h" void setHashString(struct DYNTYPE_HASH * hash, const char * key, const char * value) { struct DYNTYPE * dyn; dyn = new(DYNTYPE, DYNTYPE_TYPE_STRING, strlen(value), value); dyntype_hash_set(hash, key, dyn); } void setHashInt(struct DYNTYPE_HASH * hash, const char * key, const int value) { struct DYNTYPE * dyn; dyn = new(DYNTYPE, DYNTYPE_TYPE_INT, sizeof(int), value); dyntype_hash_set(hash, key, dyn); } int main(int argc, char * argv[]) { struct PACKET * packet; struct DYNTYPE_HASH * data; struct json_object * json; char * json_str; packet = new(PACKET); packet_setHeader( packet, new(DYNTYPE, DYNTYPE_TYPE_INT, sizeof(int), time(NULL))); data = new(DYNTYPE_HASH); setHashString(data, "#C#", "this comes from C"); setHashString(data, "usr", "ppohg"); setHashString(data, "pas", "yyyyy"); setHashInt(data, "val", 321); packet_setData( packet, new(DYNTYPE, DYNTYPE_HASH, sizeof(struct DYNTYPE_HASH *), data)); json = toJson(packet); json_str = calloc( strlen(json_object_to_json_string(json)) + 1, sizeof(char)); memcpy(json_str, json_object_to_json_string(json), strlen(json_object_to_json_string(json))); printf("%s\n", json_str); delete(dyntype_hash_get(data, "#C#")); delete(dyntype_hash_get(data, "usr")); delete(dyntype_hash_get(data, "pas")); delete(dyntype_hash_get(data, "val")); delete(packet_getHeader(packet)); delete(packet_getData(packet)); delete(packet); json_object_put(json); json = json_tokener_parse(json_str); packet = newFromJson(PACKET, json); printf("%s\n", json_object_to_json_string(json)); data = (packet_getData(packet)->data)._hash; delete(dyntype_hash_get(data, "#C#")); delete(dyntype_hash_get(data, "usr")); delete(dyntype_hash_get(data, "pas")); delete(dyntype_hash_get(data, "val")); delete(packet_getHeader(packet)); delete(packet_getData(packet)); delete(packet); free(json_str); json_object_put(json); return 0; } // vim: set et ts=4 sw=4: