X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fxmpp%2Fxmpp_xmacros.c;h=63c99edaba96809499ad178f457f630bf4b92f94;hb=2975015a8e6b00893a0ba003f3b086132fb858c8;hp=b7f5e672e695b036416adabe217b0a3077d9baca;hpb=8904d5e7123ba2f4588f48deed392b1a2d9faa39;p=citadel.git diff --git a/citadel/modules/xmpp/xmpp_xmacros.c b/citadel/modules/xmpp/xmpp_xmacros.c index b7f5e672e..63c99edab 100644 --- a/citadel/modules/xmpp/xmpp_xmacros.c +++ b/citadel/modules/xmpp/xmpp_xmacros.c @@ -18,6 +18,8 @@ void *GetToken_message(void) return &XMPP->Message; } +/// TODO +#define CALLBACK(NAME); #define STRPROP(STRUCTNAME, NAME) \ if (StrLength(pdata->NAME) > 0) \ @@ -57,11 +59,28 @@ void *GetToken_message(void) } \ } +#define SUBTOKEN(NAME, NS, STOKEN, STRUCT) \ + void serialize_##NAME##NS##STOKEN( \ + theSubToken_##NAME##NS##STOKEN *pdata, int Close) \ + { \ + XPUT("<"); \ + XPut(#NAME, sizeof(#NAME)); \ + XPUT(" "); \ + STRUCT ; \ + XPUT(">"); \ + if (Close) \ + { \ + XPut("", 1); \ + } \ + } + #include "token.def" #undef STRPROP #undef PAYLOAD #undef TOKEN - +#undef SUBTOKEN #define STRPROP(STRUCTNAME, NAME) \ FreeStrBuf(&pdata->NAME); @@ -75,10 +94,16 @@ void *GetToken_message(void) STRUCT ; \ } +#define SUBTOKEN(NAME, NS, STOKEN, STRUCT) void free_buf__##NAME##NS##STOKEN \ + (theSubToken_##NAME##NS##STOKEN *pdata){ \ + STRUCT ; \ + } + #include "token.def" #undef STRPROP #undef PAYLOAD #undef TOKEN +#undef SUBTOKEN #define TOKEN(NAME, STRUCT) \ void free_##NAME(TheToken_##NAME *pdata) \ @@ -87,9 +112,17 @@ void *GetToken_message(void) free(pdata); \ } +#define SUBTOKEN(NAME, NS, STOKEN, STRUCT) void free__##NAME##NS##STOKEN \ + (theSubToken_##NAME##NS##STOKEN *pdata) \ + { \ + free_buf__##NAME##NS##STOKEN(pdata); \ + free(pdata); \ + } + #include "token.def" #undef STRPROP #undef TOKEN +#undef SUBTOKEN @@ -117,6 +150,7 @@ CTDL_MODULE_INIT(xmpp_xmacros) GetToken_##TOKENNAME, \ offset##PROPERTYNAME); #define TOKEN(NAME, STRUCT) STRUCT +#define SUBTOKEN(NAME, NS, STOKEN, STRUCT) STRUCT #include "token.def" #undef STRPROP #undef TOKEN