C-libcurl.model-header.mustache Maven / Gradle / Ivy
The newest version!
{{#models}}{{#model}}/*
* {{classname}}.h
*
* {{description}}
*/
#ifndef _{{classname}}_H_
#define _{{classname}}_H_
#include
#include "../external/cJSON.h"
#include "../include/list.h"
#include "../include/keyValuePair.h"
{{#imports}}
#include "{{{.}}}.h"
{{/imports}}
{{#isEnum}}
{{#allowableValues}}
typedef enum { {{#enumVars}} {{{value}}}{{#first}} = 0{{/first}}{{^-last}},{{/-last}}{{/enumVars}} } {{classname}}_e;
{{/allowableValues}}
char* {{classname}}_ToString({{classname}}_e {{classname}});
{{classname}}_e {{classname}}_FromString(char* {{classname}});
cJSON *{{classname}}_convertToJSON({{classname}}_e {{classname}});
{{classname}}_e {{classname}}_parseFromJSON(cJSON *{{classname}}JSON);
{{/isEnum}}
{{^isEnum}}
{{#vars}}
{{^isContainer}}
{{^isModel}}
{{#isEnum}}
{{#allowableValues}}
typedef enum { {{#enumVars}} {{{value}}}{{#first}} = 0{{/first}}{{^-last}},{{/-last}}{{/enumVars}} } {{name}}_e;
{{/allowableValues}}
char* {{name}}_ToString({{name}}_e {{name}});
{{name}}_e {{name}}_FromString(char* {{name}});
{{/isEnum}}
{{/isModel}}
{{/isContainer}}
{{#isContainer}}
{{#items}}
{{^isModel}}
{{#isEnum}}
{{#allowableValues}}
typedef enum { {{#enumVars}} {{{value}}}{{^-last}},{{/-last}}{{/enumVars}} } {{name}}_e;
{{/allowableValues}}
char* {{name}}_ToString({{name}}_e {{name}});
{{name}}_e {{name}}_FromString(char* {{name}});
{{/isEnum}}
{{/isModel}}
{{/items}}
{{/isContainer}}
{{/vars}}
typedef struct {{classname}}_t {
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{#isModel}}
{{#isEnum}}
{{datatype}}_e {{name}}; //enum model
{{/isEnum}}
{{^isEnum}}
struct {{datatype}}_t *{{name}}; //model
{{/isEnum}}
{{/isModel}}
{{#isUuid}}
{{datatype}} *{{name}}; // uuid
{{/isUuid}}
{{#isEmail}}
{{datatype}} *{{name}}; // email
{{/isEmail}}
{{#isFreeFormObject}}
{{datatype}}_t *{{name}}; //object
{{/isFreeFormObject}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isNumeric}}
{{datatype}} {{name}}; //numeric
{{/isNumeric}}
{{#isBoolean}}
{{datatype}} {{name}}; //boolean
{{/isBoolean}}
{{#isEnum}}
{{#isString}}
{{name}}_e {{name}}; //enum
{{/isString}}
{{/isEnum}}
{{^isEnum}}
{{#isString}}
{{datatype}} *{{name}}; // string
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{datatype}} {{name}}; //Byte
{{/isByteArray}}
{{#isBinary}}
{{datatype}} {{name}}; //binary
{{/isBinary}}
{{#isDate}}
{{datatype}} *{{name}}; //date
{{/isDate}}
{{#isDateTime}}
{{datatype}} *{{name}}; //date time
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isListContainer}}
{{#isPrimitiveType}}
{{datatype}}_t *{{name}}; //primitive container
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{datatype}}_t *{{name}}; //nonprimitive container
{{/isPrimitiveType}}
{{/isListContainer}}
{{#isMapContainer}}
{{datatype}} {{name}}; //map
{{/isMapContainer}}
{{/isContainer}}
{{/vars}}
} {{classname}}_t;
{{classname}}_t *{{classname}}_create(
{{#vars}}
{{^isContainer}}
{{^isPrimitiveType}}
{{#isModel}}
{{#isEnum}}
{{datatype}}_e {{name}}{{#hasMore}},{{/hasMore}}
{{/isEnum}}
{{^isEnum}}
{{datatype}}_t *{{name}}{{#hasMore}},{{/hasMore}}
{{/isEnum}}
{{/isModel}}
{{#isUuid}}
{{datatype}} *{{name}}{{#hasMore}},{{/hasMore}}
{{/isUuid}}
{{#isEmail}}
{{datatype}} *{{name}}{{#hasMore}},{{/hasMore}}
{{/isEmail}}
{{#isFreeFormObject}}
{{datatype}}_t *{{name}}{{#hasMore}},{{/hasMore}}
{{/isFreeFormObject}}
{{/isPrimitiveType}}
{{#isPrimitiveType}}
{{#isNumeric}}
{{datatype}} {{name}}{{#hasMore}},{{/hasMore}}
{{/isNumeric}}
{{#isBoolean}}
{{datatype}} {{name}}{{#hasMore}},{{/hasMore}}
{{/isBoolean}}
{{#isEnum}}
{{#isString}}
{{name}}_e {{name}}{{#hasMore}},{{/hasMore}}
{{/isString}}
{{/isEnum}}
{{^isEnum}}
{{#isString}}
{{datatype}} *{{name}}{{#hasMore}},{{/hasMore}}
{{/isString}}
{{/isEnum}}
{{#isByteArray}}
{{datatype}} {{name}}{{#hasMore}},{{/hasMore}}
{{/isByteArray}}
{{#isBinary}}
{{datatype}} {{name}}{{#hasMore}},{{/hasMore}}
{{/isBinary}}
{{#isDate}}
{{datatype}} *{{name}}{{#hasMore}},{{/hasMore}}
{{/isDate}}
{{#isDateTime}}
{{datatype}} *{{name}}{{#hasMore}},{{/hasMore}}
{{/isDateTime}}
{{/isPrimitiveType}}
{{/isContainer}}
{{#isContainer}}
{{#isListContainer}}
{{#isPrimitiveType}}
{{datatype}}_t *{{name}}{{#hasMore}},{{/hasMore}}
{{/isPrimitiveType}}
{{^isPrimitiveType}}
{{datatype}}_t *{{name}}{{#hasMore}},{{/hasMore}}
{{/isPrimitiveType}}
{{/isListContainer}}
{{#isMapContainer}}
{{datatype}} {{name}}{{#hasMore}},{{/hasMore}}
{{/isMapContainer}}
{{/isContainer}}
{{/vars}}
);
void {{classname}}_free({{classname}}_t *{{classname}});
{{classname}}_t *{{classname}}_parseFromJSON(cJSON *{{classname}}JSON);
cJSON *{{classname}}_convertToJSON({{classname}}_t *{{classname}});
{{/isEnum}}
#endif /* _{{classname}}_H_ */
{{/model}}{{/models}}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy