Library for Yodiwo's Plegma API

Committer:
mitsarionas
Date:
Mon Sep 28 08:53:12 2015 +0000
Revision:
8:710e7fa99666
Parent:
6:4596aaa1a824
fix: c linkage

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mitsarionas 0:384a04dc912e 1
mitsarionas 0:384a04dc912e 2 #ifndef _YODIWO_API_HELPERS_H_
mitsarionas 0:384a04dc912e 3 #define _YODIWO_API_HELPERS_H_
mitsarionas 0:384a04dc912e 4
mitsarionas 8:710e7fa99666 5 #ifdef __cplusplus
mitsarionas 8:710e7fa99666 6 extern "C" {
mitsarionas 8:710e7fa99666 7 #endif
mitsarionas 8:710e7fa99666 8
mitsarionas 0:384a04dc912e 9 #include "yodiwo_api.h"
mitsarionas 0:384a04dc912e 10
mitsarionas 6:4596aaa1a824 11 #define YODIWO_API_VERSION_STR "1"
mitsarionas 6:4596aaa1a824 12 #define KEY_SEPARATOR '-'
mitsarionas 6:4596aaa1a824 13
mitsarionas 0:384a04dc912e 14 /* ======================================================================================================================= */
mitsarionas 0:384a04dc912e 15 /* FromJson Functions */
mitsarionas 0:384a04dc912e 16 /* ======================================================================================================================= */
mitsarionas 0:384a04dc912e 17 typedef int(ParseFunc)(jsmntok_t* tok, char* json, void** result);
mitsarionas 6:4596aaa1a824 18 typedef Yodiwo_Plegma_Json_e(ParseFuncSubStruct)(char *json, size_t jsonSize, void* value);
mitsarionas 0:384a04dc912e 19 // -----------------------------------------------------------------------------------------------------------------------
mitsarionas 0:384a04dc912e 20 typedef struct {
mitsarionas 0:384a04dc912e 21 char* fieldName;
mitsarionas 0:384a04dc912e 22 int filedNameLength;
mitsarionas 0:384a04dc912e 23 ParseFunc* parseFunc;
mitsarionas 0:384a04dc912e 24 ParseFuncSubStruct* parseFuncSubStruct;
mitsarionas 0:384a04dc912e 25 void** value;
mitsarionas 0:384a04dc912e 26 } ParseTable;
mitsarionas 0:384a04dc912e 27 // -----------------------------------------------------------------------------------------------------------------------
mitsarionas 0:384a04dc912e 28 Yodiwo_Plegma_Json_e HelperJsonParseExec(char*json, int jsonSize, ParseTable table[], size_t tableSize);
mitsarionas 0:384a04dc912e 29
mitsarionas 0:384a04dc912e 30 int Parse_String(jsmntok_t* t, char* json, void** result);
mitsarionas 0:384a04dc912e 31 int Parse_Double(jsmntok_t* t, char* json, void** result);
mitsarionas 0:384a04dc912e 32 int Parse_Float(jsmntok_t* t, char* json, void** result);
mitsarionas 0:384a04dc912e 33 int Parse_Int(jsmntok_t* t, char* json, void** result);
mitsarionas 0:384a04dc912e 34 int Parse_Bool(jsmntok_t* t, char* json, void** result);
mitsarionas 0:384a04dc912e 35 int Helper_Json_ParseArray(jsmntok_t t[], int tokSize);
mitsarionas 0:384a04dc912e 36
mitsarionas 0:384a04dc912e 37
mitsarionas 0:384a04dc912e 38
mitsarionas 0:384a04dc912e 39 // -----------------------------------------------------------------------------------------------------------------------
mitsarionas 0:384a04dc912e 40 int Array_string_ToJson(char* jsonStart, size_t jsonSize, Array_string *array);
mitsarionas 0:384a04dc912e 41 Yodiwo_Plegma_Json_e Array_string_FromJson(char* json, size_t jsonSize, Array_string *array);
mitsarionas 0:384a04dc912e 42
mitsarionas 6:4596aaa1a824 43 int NodeKey_FromString(Yodiwo_Plegma_NodeKey_t *nodeKey, char *str);
mitsarionas 6:4596aaa1a824 44
mitsarionas 6:4596aaa1a824 45 char *make_nextKey_str(char *key, int nextId);
mitsarionas 6:4596aaa1a824 46 int fill_PortKey(Yodiwo_Plegma_Port_t *port, char *thingKey, int portId);
mitsarionas 6:4596aaa1a824 47 int fill_ThingKey(Yodiwo_Plegma_Thing_t *thing, char *nodeKey, int thingId);
mitsarionas 6:4596aaa1a824 48 int fill_Thing_Keys(Yodiwo_Plegma_Thing_t *thing, char *nodeKey, int thingId);
mitsarionas 0:384a04dc912e 49
mitsarionas 8:710e7fa99666 50 #ifdef __cplusplus
mitsarionas 8:710e7fa99666 51 }
mitsarionas 8:710e7fa99666 52 #endif
mitsarionas 0:384a04dc912e 53
mitsarionas 2:855390040d43 54 #endif /* _Yodiwo_Plegma_HELPERS_H_ */
mitsarionas 6:4596aaa1a824 55