7 #ifndef TEMPLATEINCLUDE_H 8 #define TEMPLATEINCLUDE_H 31 #define TEMPLATE_PROTOTYPE_COMMON(CLASS) \ 32 TEMPLATE_PROTOTYPE_COMMON_AUX(CLASS) 33 #define TEMPLATE_PROTOTYPE_COMMON_AUX(CLASS) \ 37 typedef struct s_##CLASS CLASS; \ 40 EXPORT_SPEC CLASS *CLASS##_new(); \ 43 EXPORT_SPEC void CLASS##_delete(CLASS *p); \ 46 EXPORT_SPEC CLASS *CLASS##_dup(const CLASS *p); \ 49 EXPORT_SPEC int CLASS##_assign(CLASS *p, const CLASS *q); \ 53 #define TEMPLATE_PROTOTYPE_INT(CLASS, MEMBER, TYPE) \ 54 TEMPLATE_PROTOTYPE_INT_AUX(CLASS, MEMBER, TYPE) 55 #define TEMPLATE_PROTOTYPE_INT_AUX(CLASS, MEMBER, TYPE) \ 57 EXPORT_SPEC TYPE CLASS##_get_##MEMBER(const CLASS *p); \ 58 EXPORT_SPEC int CLASS##_set_##MEMBER(CLASS *p, TYPE n); \ 62 #define TEMPLATE_PROTOTYPE_BUFFER(CLASS, MEMBER, TYPE) \ 63 TEMPLATE_PROTOTYPE_BUFFER_AUX(CLASS, MEMBER, TYPE) 64 #define TEMPLATE_PROTOTYPE_BUFFER_AUX(CLASS, MEMBER, TYPE) \ 66 EXPORT_SPEC const TYPE *CLASS##_get_##MEMBER(const CLASS *p); \ 67 EXPORT_SPEC int CLASS##_set_##MEMBER(CLASS *p, const TYPE *buf); \ 68 EXPORT_SPEC void CLASS##_clear_##MEMBER(CLASS *p); \ 72 #define TEMPLATE_PROTOTYPE_LIST(CLASS, MEMBER) \ 73 TEMPLATE_PROTOTYPE_LIST_AUX(CLASS, MEMBER) 74 #define TEMPLATE_PROTOTYPE_LIST_AUX(CLASS, MEMBER) \ 76 EXPORT_SPEC const struct list_head *CLASS##_get_##MEMBER(const CLASS *p); \ 77 EXPORT_SPEC void CLASS##_add_to_list_##MEMBER(CLASS *p, struct list_head *head); \ 78 EXPORT_SPEC void CLASS##_remove_from_list_##MEMBER(CLASS *p); \ 79 EXPORT_SPEC void CLASS##_replace_in_list_##MEMBER(CLASS *p, struct list_head *new); \ 83 #define TEMPLATE_PROTOTYPE_OBJECT(CLASS, MEMBER, TYPE) \ 84 TEMPLATE_PROTOTYPE_OBJECT_AUX(CLASS, MEMBER, TYPE) 85 #define TEMPLATE_PROTOTYPE_OBJECT_AUX(CLASS, MEMBER, TYPE) \ 87 EXPORT_SPEC const TYPE *CLASS##_get_##MEMBER(const CLASS *p); \ 88 EXPORT_SPEC int CLASS##_set_##MEMBER(CLASS *p, const TYPE *n); \ 92 #define TEMPLATE_PROTOTYPE_STRING(CLASS, MEMBER) \ 93 TEMPLATE_PROTOTYPE_STRING_AUX(CLASS, MEMBER) 94 #define TEMPLATE_PROTOTYPE_STRING_AUX(CLASS, MEMBER) \ 96 EXPORT_SPEC const UpnpString *CLASS##_get_##MEMBER(const CLASS *p); \ 97 EXPORT_SPEC int CLASS##_set_##MEMBER(CLASS *p, const UpnpString *s); \ 98 EXPORT_SPEC size_t CLASS##_get_##MEMBER##_Length(const CLASS *p); \ 99 EXPORT_SPEC const char *CLASS##_get_##MEMBER##_cstr(const CLASS *p); \ 100 EXPORT_SPEC int CLASS##_strcpy_##MEMBER(CLASS *p, const char *s); \ 101 EXPORT_SPEC int CLASS##_strncpy_##MEMBER(CLASS *p, const char *s, size_t n); \ 102 EXPORT_SPEC void CLASS##_clear_##MEMBER(CLASS *p); \ 106 #define TEMPLATE_PROTOTYPE_DOMSTRING(CLASS, MEMBER) \ 107 TEMPLATE_PROTOTYPE_DOMSTRING_AUX(CLASS, MEMBER) 108 #define TEMPLATE_PROTOTYPE_DOMSTRING_AUX(CLASS, MEMBER) \ 110 EXPORT_SPEC const DOMString CLASS##_get_##MEMBER(const CLASS *p); \ 111 EXPORT_SPEC int CLASS##_set_##MEMBER(CLASS *p, const DOMString s); \ 112 EXPORT_SPEC const char *CLASS##_get_##MEMBER##_cstr(const CLASS *p); \ 140 #define EXPAND_CLASS_MEMBER_INT(CLASS, MEMBER, TYPE) TEMPLATE_PROTOTYPE_INT(CLASS, MEMBER, TYPE) 141 #define EXPAND_CLASS_MEMBER_BUFFER(CLASS, MEMBER, TYPE) TEMPLATE_PROTOTYPE_BUFFER(CLASS, MEMBER, TYPE) 142 #define EXPAND_CLASS_MEMBER_LIST(CLASS, MEMBER) TEMPLATE_PROTOTYPE_LIST(CLASS, MEMBER) 143 #define EXPAND_CLASS_MEMBER_OBJECT(CLASS, MEMBER, TYPE) TEMPLATE_PROTOTYPE_OBJECT(CLASS, MEMBER, TYPE) 144 #define EXPAND_CLASS_MEMBER_STRING(CLASS, MEMBER) TEMPLATE_PROTOTYPE_STRING(CLASS, MEMBER) 145 #define EXPAND_CLASS_MEMBER_DOMSTRING(CLASS, MEMBER) TEMPLATE_PROTOTYPE_DOMSTRING(CLASS, MEMBER) 147 EXPAND_CLASS_MEMBERS(
CLASS)
149 #include "TemplateUndef.h" 157 #ifdef TEMPLATE_GENERATE_SOURCE 164 #undef EXPAND_CLASS_MEMBERS struct s_CLASS CLASS
Definition: TemplateInclude.h:138
Templates for source files of objects.
UpnpString object declaration.
Defines constants that for some reason are not defined on some systems.