3 #include <libcitadel.h>
4 #include "ctdl_module.h"
7 void *GetToken_iq(void)
11 void *GetToken_piq(void)
16 void *GetToken_message(void)
18 return &XMPP->Message;
22 #define CALLBACK(NAME);
24 #define STRPROP(STRUCTNAME, NAME) \
25 if (StrLength(pdata->NAME) > 0) \
27 XPut(#NAME, sizeof(#NAME) - 1); \
29 XPutProp(SKEY(pdata->NAME)); \
33 #define PAYLOAD(STRUCTNAME, NAME) \
34 XPrint(#NAME, sizeof(#NAME) -1, \
36 TYPE_BODYSTR, SKEY(pdata->NAME), \
39 #define THENAMESPACE(STRUCTNAME, NAME) \
40 XPut(#NAME, sizeof(#NAME) - 1); \
42 XPutProp(NAMESPACE_##STRUCTNAME, \
43 sizeof(NAMESPACE_##STRUCTNAME)-1); \
46 #define TOKEN(NAME, STRUCT) \
47 void serialize_##NAME(TheToken_##NAME *pdata, int Close) \
50 XPut(#NAME, sizeof(#NAME)); \
57 XPut(#NAME, sizeof(#NAME)); \
62 #define SUBTOKEN(NAME, NS, STOKEN, STRUCT) \
63 void serialize_##NAME##NS##STOKEN( \
64 theSubToken_##NAME##NS##STOKEN *pdata, int Close) \
67 XPut(#NAME, sizeof(#NAME)); \
74 XPut(#NAME, sizeof(#NAME)); \
85 #define STRPROP(STRUCTNAME, NAME) \
86 FreeStrBuf(&pdata->NAME);
88 #define PAYLOAD(STRUCTNAME, NAME) \
89 FreeStrBuf(&pdata->NAME);
91 #define TOKEN(NAME, STRUCT) \
92 void free_buf_##NAME(TheToken_##NAME *pdata) \
97 #define SUBTOKEN(NAME, NS, STOKEN, STRUCT) void free_buf__##NAME##NS##STOKEN \
98 (theSubToken_##NAME##NS##STOKEN *pdata){ \
108 #define TOKEN(NAME, STRUCT) \
109 void free_##NAME(TheToken_##NAME *pdata) \
111 free_buf_##NAME(pdata); \
115 #define SUBTOKEN(NAME, NS, STOKEN, STRUCT) void free__##NAME##NS##STOKEN \
116 (theSubToken_##NAME##NS##STOKEN *pdata) \
118 free_buf__##NAME##NS##STOKEN(pdata); \
129 CTDL_MODULE_INIT(xmpp_xmacros)
132 #define STRPROP(TOKENNAME, PROPERTYNAME) \
133 long offset##PROPERTYNAME = \
134 offsetof(TheToken_##TOKENNAME, PROPERTYNAME); \
135 XMPP_RegisterTokenProperty( \
136 NAMESPACE_##TOKENNAME, \
137 sizeof(NAMESPACE_##TOKENNAME)-1, \
138 #TOKENNAME, sizeof(#TOKENNAME)-1, \
139 #PROPERTYNAME, sizeof(#PROPERTYNAME)-1, \
140 GetToken_##TOKENNAME, \
141 offset##PROPERTYNAME);
142 #define PAYLOAD(TOKENNAME, PROPERTYNAME) \
143 long offset##PROPERTYNAME = \
144 offsetof(TheToken_##TOKENNAME, PROPERTYNAME); \
145 XMPP_RegisterTokenProperty( \
146 NAMESPACE_##TOKENNAME, \
147 sizeof(NAMESPACE_##TOKENNAME)-1, \
148 #TOKENNAME, sizeof(#TOKENNAME)-1, \
150 GetToken_##TOKENNAME, \
151 offset##PROPERTYNAME);
152 #define TOKEN(NAME, STRUCT) STRUCT
153 #define SUBTOKEN(NAME, NS, STOKEN, STRUCT) STRUCT
159 /* return our module name for the log */
160 return "xmpp_xmacros";