#include "Eiotas.h" #include #include typedef struct { char txt[32]; int idx; } Input; static Input* input_create(char *txt) { Input *input = (Input*)malloc(sizeof(Input)); strncpy(input->txt,txt,32); input->txt[31] = '\0'; input->idx = 0; return input; } static void input_free(Input *input) { EINA_LOG_DOM_DBG(_eiotas_log_dom,"free Input\n"); free(input); } static void input_show(Input *input) { EINA_LOG_DOM_DBG(_eiotas_log_dom,"Input [%d] %s\n",input->idx,input->txt); } static void input_receive(const Eiotas_Door *door, Eiotas_Particle *particle, Eiotas_User_Data *data) { EINA_LOG_DOM_DBG(_eiotas_log_dom,"input_receive 0x%X\n",data); } int main(int argc, char **argv) { int i; Eiotas_Particle *p0, *p1, *p2, *p3; if(eiotas_init()>0) { return EXIT_FAILURE; } eina_log_domain_level_set("eiotas",EINA_LOG_LEVEL_DBG); EINA_LOG_DOM_DBG(_eiotas_log_dom,"Eiotas version %d.%d.%d",eiotas_version->major,eiotas_version->minor,eiotas_version->micro); Eiotas_Spin *dom0 = eiotas_spin_add("dom0",10); eiotas_iota_show((Eiotas_Iota*)dom0); Eiotas_Room *room = &dom0->room; char name[8]; for(i=0; i<5; i++) { sprintf(name,"room%d",i); Eiotas_Room *tmp = eiotas_room_add(name,room); if(tmp!=NULL) { room = tmp; eiotas_iota_show((Eiotas_Iota*)room); // MACROS } } room = eiotas_room_add("room0",&dom0->room); Input *input = input_create("hello world"); input_show(input); Eiotas_User_Bits user_bits; user_bits.data = input; user_bits.free_fct = (Eiotas_User_Data_Free)&input_free; user_bits.recv_fct = (Eiotas_Receive_Particle)&input_receive; Eiotas_Door *din0 = eiotas_door_add("input0",&dom0->room,&user_bits); eiotas_iota_show(&din0->iota); // eiotas_iota_show((Eiotas_Iota*)din0); /* p0 = eiotas_iota_require_particle((Eiotas_Iota*)din0); */ /* p1 = eiotas_iota_require_particle((Eiotas_Iota*)din0); */ /* p2 = eiotas_iota_require_particle((Eiotas_Iota*)din0); */ /* p3 = eiotas_iota_require_particle((Eiotas_Iota*)din0); */ /* eiotas_iota_release_particle((Eiotas_Iota*)din0,p0); */ /* eiotas_iota_release_particle((Eiotas_Iota*)din0,p1); */ /* eiotas_spin_send_particle(din0->iota.spin,p2,EINA_FALSE); */ /* eiotas_spin_send_particle(din0->iota.spin,p3,EINA_TRUE); */ eiotas_spin_free(dom0); return eiotas_shutdown(); }