hmm this is cleaner

SVN revision: 15030
This commit is contained in:
Carsten Haitzler 2005-05-31 03:35:17 +00:00
parent d09238dc26
commit 67a16439c5
1 changed files with 16 additions and 8 deletions

View File

@ -22,7 +22,9 @@ if (e->data) { \
} \ } \
} \ } \
break; break;
# define SAVE e_config_save_queue() # define SAVE e_config_save_queue()
# define REQ_STRING(__str, HANDLER) \ # define REQ_STRING(__str, HANDLER) \
case HANDLER: { void *data; int bytes; \ case HANDLER: { void *data; int bytes; \
data = e_ipc_codec_str_enc(__str, &bytes); \ data = e_ipc_codec_str_enc(__str, &bytes); \
@ -32,23 +34,27 @@ case HANDLER: { void *data; int bytes; \
} \ } \
} \ } \
break; break;
# define REQ_NULL(HANDLER) \ # define REQ_NULL(HANDLER) \
case HANDLER: \ case HANDLER: \
ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HANDLER, 0, 0, 0, NULL, 0); \ ecore_ipc_server_send(e->server, E_IPC_DOMAIN_REQUEST, HANDLER, 0, 0, 0, NULL, 0); \
break; break;
# define FREE_LIST(__list) \ # define FREE_LIST(__list) \
while (__list) { \ while (__list) { \
free(__list->data); \ free(__list->data); \
__list = evas_list_remove_list(__list, __list); \ __list = evas_list_remove_list(__list, __list); \
} }
# define SEND_DATA(__opcode) \ # define SEND_DATA(__opcode) \
ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __opcode, 0, 0, 0, data, bytes) ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __opcode, 0, 0, 0, data, bytes)
# define STRING_INT_LIST(__v, __dec, __typ, HANDLER) \
# define STRING_INT_LIST(__v, HANDLER) \
case HANDLER: { \ case HANDLER: { \
Evas_List *dat = NULL, *l; \ Evas_List *dat = NULL, *l; \
if (__dec(e->data, e->size, &dat)) { \ if (e_ipc_codec_str_int_list_dec(e->data, e->size, &dat)) { \
for (l = dat; l; l = l->next) { \ for (l = dat; l; l = l->next) { \
__typ *__v; \ E_Ipc_Str_Int *__v; \
__v = l->data; __v = l->data;
#define END_STRING_INT_LIST(__v) \ #define END_STRING_INT_LIST(__v) \
free(__v->str); \ free(__v->str); \
@ -59,15 +65,16 @@ ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __opcode, 0, 0, 0, data, by
reply_count++; \ reply_count++; \
} \ } \
break; break;
#define SEND_STRING_INT_LIST(__list, __typ1, __v1, __typ2, __v2, HANDLER) \
#define SEND_STRING_INT_LIST(__list, __typ1, __v1, __v2, HANDLER) \
case HANDLER: { \ case HANDLER: { \
Evas_List *dat = NULL, *l; \ Evas_List *dat = NULL, *l; \
void *data; int bytes; \ void *data; int bytes; \
for (l = e_module_list(); l; l = l->next) { \ for (l = e_module_list(); l; l = l->next) { \
__typ1 *__v1; \ __typ1 *__v1; \
__typ2 *__v2; \ E_Ipc_Str_Int *__v2; \
__v1 = l->data; \ __v1 = l->data; \
__v2 = calloc(1, sizeof(__typ2)); __v2 = calloc(1, sizeof(E_Ipc_Str_Int));
#define END_SEND_STRING_INT_LIST(__v1, __op) \ #define END_SEND_STRING_INT_LIST(__v1, __op) \
dat = evas_list_append(dat, __v1); \ dat = evas_list_append(dat, __v1); \
} \ } \
@ -77,6 +84,7 @@ ecore_ipc_client_send(e->client, E_IPC_DOMAIN_REPLY, __opcode, 0, 0, 0, data, by
FREE_LIST(dat); \ FREE_LIST(dat); \
} \ } \
break; break;
#define SEND_STRING(__str, __op, HANDLER) \ #define SEND_STRING(__str, __op, HANDLER) \
case HANDLER: { void *data; int bytes; \ case HANDLER: { void *data; int bytes; \
data = e_ipc_codec_str_enc(__str, &bytes); \ data = e_ipc_codec_str_enc(__str, &bytes); \
@ -204,7 +212,7 @@ break;
#elif (TYPE == E_REMOTE_OUT) #elif (TYPE == E_REMOTE_OUT)
REQ_NULL(HANDLER); REQ_NULL(HANDLER);
#elif (TYPE == E_WM_IN) #elif (TYPE == E_WM_IN)
SEND_STRING_INT_LIST(e_module_list(), E_Module, mod, E_Ipc_Str_Int, v, HANDLER); SEND_STRING_INT_LIST(e_module_list(), E_Module, mod, v, HANDLER);
v->str = mod->name; v->str = mod->name;
v->val = mod->enabled; v->val = mod->enabled;
END_SEND_STRING_INT_LIST(v, E_IPC_OP_MODULE_LIST_REPLY); END_SEND_STRING_INT_LIST(v, E_IPC_OP_MODULE_LIST_REPLY);
@ -218,7 +226,7 @@ break;
#elif (TYPE == E_REMOTE_OUT) #elif (TYPE == E_REMOTE_OUT)
#elif (TYPE == E_WM_IN) #elif (TYPE == E_WM_IN)
#elif (TYPE == E_REMOTE_IN) #elif (TYPE == E_REMOTE_IN)
STRING_INT_LIST(v, e_ipc_codec_str_int_list_dec, E_Ipc_Str_Int, HANDLER); STRING_INT_LIST(v, HANDLER);
printf("REPLY: \"%s\" ENABLED %i\n", v->str, v->val); printf("REPLY: \"%s\" ENABLED %i\n", v->str, v->val);
END_STRING_INT_LIST(v); END_STRING_INT_LIST(v);
#endif #endif