int ecore_config_ipc_send(Ecore_Config_Ipc_Server_List ** srv_list, int major, int minor, void *data, int size) { Ecore_Config_Ipc_Server_List *tmp = *srv_list; static int ref = 0; int ret; if (!srv_list) return ECORE_CONFIG_ERR_FAIL; if (!*srv_list) return ECORE_CONFIG_ERR_NODATA; ret = ECORE_CONFIG_ERR_NODATA; if (size < 0) size = data ? strlen(data) + 1 : 0; while (tmp) { ret = ecore_ipc_server_send(tmp->srv, major, minor, ++ref, 0, 0, data, size); tmp = tmp->next; } E(2, "exsh: we sent: %2d.%02d #%03d \"%s\".%d => %d\n", major, minor, ref, (char *) data, size, ret); if ((debug >= 2) && (size > 0)) print_data(data, size); #ifdef EXSH ecore_main_loop_begin(); #endif return ECORE_CONFIG_ERR_SUCC; }
int entropy_notify_loop(void* data) { entropy_notification_engine* notify = (entropy_notification_engine*)data; entropy_notify_event* next; void* (*call_func)(void* arg); ecore_list_first_goto (notify->op_queue); if ( (next = ecore_list_next(notify->op_queue)) ) { next->processed = 1; /*printf ("*************************************** Notify loop - Processing event..\n"); */ /*printf("Calling function '%s'\n", next->function);*/ call_func = dlsym(next->plugin->dl_ref, next->function); next->return_struct = (*call_func)(next->data); /*Relock to remove next*/ ecore_list_first_remove(notify->op_queue); ecore_list_append(notify->exe_queue, next); ecore_ipc_server_send(notify->server, ENTROPY_IPC_EVENT_CORE, 6, 0, 0, 0, NULL, 0); } else { } return 1; }
/* Eon callbacks */ static void _mutation_cb(const Ekeko_Object *o, Ekeko_Event *ev, void *data) { Ekeko_Event_Mutation *em = (Ekeko_Event_Mutation *)ev; Object *ob = (Object *)data; printf("[REMOTE] changing property %s %s\n", em->prop, ekeko_object_type_name_get(o)); /* TODO only do this on the curr state, not post */ ecore_ipc_server_send(rdoc->srv, 2, em->prop_id, ob->id, 0, 0, NULL, 0); }
void _e_fm_main_catch(unsigned int val) { char buf[64]; snprintf(buf, sizeof(buf), "%u", val); ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_INIT, 0, 0, 0, buf, strlen(buf) + 1); }
/*Writers*/ void evfs_write_ecore_ipc_server_message(Ecore_Ipc_Server * server, ecore_ipc_message * msg) { ecore_ipc_server_send(server, msg->major, msg->minor, msg->ref, msg->ref_to, msg->response, msg->data, msg->len); /*printf("Sent %d, %d, %d, %d, %d, - data %p, size %d\n", msg->major, msg->minor, msg->ref, msg->ref_to, msg->response, msg->data, msg->len);*/ free(msg->data); free(msg); }
static Eina_Bool _e_fm_main_eeze_vol_mount_timeout(E_Volume *v) { char *buf; int size; v->guard = NULL; eeze_disk_cancel(v->disk); size = _e_fm_main_eeze_format_error_msg(&buf, v, "org.enlightenment.fm2.MountTimeout", "Unable to mount the volume with specified time-out."); ecore_ipc_server_send(_e_fm_ipc_server, 6 /*E_IPC_DOMAIN_FM*/, E_FM_OP_MOUNT_ERROR, 0, 0, 0, buf, size); free(buf); return ECORE_CALLBACK_CANCEL; }
static void * object_create(Ekeko_Object *o) { Object *ob; char *name; printf("[REMOTE] Object created %s\n", ekeko_object_type_name_get(o)); ob = malloc(sizeof(Object)); ob->o = o; ob->id = _ids++; name = ekeko_object_type_name_get(o); ecore_ipc_server_send(rdoc->srv, 0, 0, 0, 0, 0, name, strlen(name) + 1); ekeko_event_listener_add(o, EKEKO_EVENT_PROP_MODIFY, _mutation_cb, EINA_FALSE, ob); /* TODO register a callback on every property change */ /* TODO register a callback on every tree change */ return ob; }