Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* gcc -g -o main main.c `pkg-config --cflags --libs eina ecore esskyuehl eio` */
- #include <Eina.h>
- #include <Ecore.h>
- #include <Esskyuehl.h>
- #include <Eio.h>
- struct _Stats
- {
- struct
- {
- Eina_Bool connected;
- unsigned int pending_queues;
- Esql *esql;
- } esql;
- struct
- {
- unsigned int pending_ls;
- } eio;
- };
- void _print(struct _Stats *stats)
- {
- printf("\rPending ls[%.6d] queues[%.6d]",
- stats->eio.pending_ls,
- stats->esql.pending_queues);
- fflush(stdout);
- }
- Eina_Bool _list_cb_filter(void *data, Eio_File *handler, const Eina_File_Direct_Info *file)
- {
- // usleep(500);
- return EINA_TRUE;
- }
- void _list_cb_error(void *data, Eio_File *handler, int error)
- {
- return;
- }
- void _list_cb_done(void *data, Eio_File *handler)
- {
- struct _Stats *stats = data;
- stats->eio.pending_ls--;
- return;
- }
- void _list_cb(void *data, Eio_File *handler, const Eina_File_Direct_Info *file)
- {
- struct _Stats *stats = data;
- _print(stats);
- if (file->type==EINA_FILE_REG)
- {
- stats->esql.pending_queues++;
- /* esql_query_args(stats->esql.esql, NULL,
- "SELECT nom FROM element "
- "WHERE nom = \"%s\";", file->path);
- */ }
- return;
- }
- Eina_Bool _sql_connect(void *data,
- int type,
- Esql *e)
- {
- struct _Stats *stats = data;
- unsigned int i;
- stats->esql.connected = EINA_TRUE;
- stats->eio.pending_ls++;
- eio_dir_stat_ls("/home/kuri",
- _list_cb_filter,
- _list_cb,
- _list_cb_done,
- _list_cb_error,
- stats);
- return ECORE_CALLBACK_RENEW;
- }
- Eina_Bool _sql_disconnect(void *data,
- int type,
- Esql *e)
- {
- struct _Stats *stats = data;
- stats->esql.connected = EINA_FALSE;
- return ECORE_CALLBACK_RENEW;
- }
- Eina_Bool _sql_error(void *data,
- int type,
- Esql *e)
- {
- return ECORE_CALLBACK_RENEW;
- }
- Eina_Bool _sql_result(void *data,
- int type,
- Esql_Res *res)
- {
- struct _Stats *stats = data;
- stats->esql.pending_queues--;
- _print(stats);
- if ( (!stats->esql.pending_queues) && (!stats->eio.pending_ls) )
- {
- printf("\n");
- ecore_main_loop_quit();
- }
- return ECORE_CALLBACK_RENEW;
- }
- int main(int argc, char **argv)
- {
- struct _Stats *data;
- eina_init();
- eina_log_threads_enable();
- ecore_init();
- esql_init();
- data = calloc(1, sizeof(struct _Stats));
- data->esql.connected = EINA_FALSE;
- ecore_event_handler_add(ESQL_EVENT_CONNECT, (Ecore_Event_Handler_Cb)_sql_connect, data);
- ecore_event_handler_add(ESQL_EVENT_ERROR, (Ecore_Event_Handler_Cb)_sql_error, data);
- ecore_event_handler_add(ESQL_EVENT_RESULT, (Ecore_Event_Handler_Cb)_sql_result, data);
- ecore_event_handler_add(ESQL_EVENT_DISCONNECT, (Ecore_Event_Handler_Cb)_sql_disconnect, data);
- data->esql.esql = esql_pool_new(10,ESQL_TYPE_MYSQL);
- esql_database_set(data->esql.esql, "test");
- esql_connect(data->esql.esql, "192.168.2.202:3306", "root", "test");
- esql_reconnect_set(data->esql.esql, EINA_TRUE);
- ecore_main_loop_begin();
- esql_free(data->esql.esql);
- free(data);
- esql_shutdown();
- ecore_shutdown();
- eina_shutdown();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement