C-libcurl.model-header.mustache Maven / Gradle / Ivy
{{#models}}{{#model}}/*
* {{classname}}.h
*
* {{description}}
*/
#ifndef _{{classname}}_H_
#define _{{classname}}_H_
#include
#include "cJSON.h"
{{#imports}}
#include "{{{.}}}.h"
{{/imports}}
{{#vars}}
{{#isBoolean}}
typedef int bool;
#define true 1
#define false 0
{{/isBoolean}}
{{/vars}}
{{#vars}}
{{#isEnum}}
{{#allowableValues}}
typedef enum { {{#enumVars}} {{{value}}}{{^-last}},{{/-last}}{{/enumVars}} } {{baseName}}_e;
{{/allowableValues}}
{{/isEnum}}
{{/vars}}
{{#vars}}
{{#isEnum}}
char* {{baseName}}{{classname}}_ToString({{baseName}}_e {{baseName}});
{{baseName}}_e {{baseName}}{{classname}}_FromString(char* {{baseName}});
{{/isEnum}}
{{/vars}}
typedef struct {{classname}}_t {
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{datatype}}_t *{{baseName}}; //nonprimitive
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isNumeric}}
{{datatype}} {{baseName}}; //numeric
{{/isNumeric}}
{{#isBoolean}}
bool {{baseName}}; //boolean
{{/isBoolean}}
{{#isEnum}}
{{#isString}}
{{baseName}}_e {{baseName}}; //enum string
{{/isString}}
{{/isEnum}}
{{^isEnum}}
{{#isString}}
{{datatype}} *{{baseName}}; //no enum string
{{/isString}}
{{/isEnum}}
{{#isDateTime}}
{{datatype}} *{{baseName}}; //date time string
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isListContainer}}
{{#isPrimitiveType}}
{{datatype}}_t *{{baseName}}; //primitive container
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{datatype}}_t *{{baseName}}; //nonprimitive container
{{/isPrimitiveType}}
{{/isListContainer}}
{{#isMapContainer}}
{{datatype}} {{baseName}};
// TODO map/hash not supported at the moment
{{/isMapContainer}}
{{/isContainer}}
{{/vars}}
} {{classname}}_t;
{{classname}}_t *{{classname}}_create(
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{datatype}}_t *{{baseName}}{{#hasMore}},{{/hasMore}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isNumeric}}
{{datatype}} {{baseName}}{{#hasMore}},{{/hasMore}}
{{/isNumeric}}
{{#isBoolean}}
bool {{baseName}}{{#hasMore}},{{/hasMore}}
{{/isBoolean}}
{{#isEnum}}
{{#isString}}
{{baseName}}_e {{baseName}}{{#hasMore}},{{/hasMore}}
{{/isString}}
{{/isEnum}}
{{^isEnum}}
{{#isString}}
{{datatype}} *{{baseName}}{{#hasMore}},{{/hasMore}}
{{/isString}}
{{/isEnum}}
{{#isDateTime}}
{{datatype}} *{{baseName}}{{#hasMore}},{{/hasMore}}
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isListContainer}}
{{#isPrimitiveType}}
{{datatype}}_t *{{baseName}}{{#hasMore}},{{/hasMore}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{datatype}}_t *{{baseName}}{{#hasMore}},{{/hasMore}}
{{/isPrimitiveType}}
{{/isListContainer}}
{{#isMapContainer}}
{{datatype}} {{baseName}}{{#hasMore}},{{/hasMore}}
// TODO map/hash not supported at the moment
{{/isMapContainer}}
{{/isContainer}}
{{/vars}}
);
void {{classname}}_free({{classname}}_t *{{classname}});
{{classname}}_t *{{classname}}_parseFromJSON(char *jsonString);
cJSON *{{classname}}_convertToJSON({{classname}}_t *{{classname}});
#endif /* _{{classname}}_H_ */
{{/model}}{{/models}}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy