Enlightenment CVS committal Author : chaos Project : e17 Module : apps/evfs
Dir : e17/apps/evfs/src/bin Modified Files: evfs_metadata.c Log Message: * MetaData harvesting work =================================================================== RCS file: /cvs/e/e17/apps/evfs/src/bin/evfs_metadata.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- evfs_metadata.c 23 Jul 2006 04:49:42 -0000 1.25 +++ evfs_metadata.c 5 Aug 2006 12:25:10 -0000 1.26 @@ -52,6 +52,9 @@ static int _evfs_metadata_db_wait = 0; static Ecore_DList* evfs_metdata_db_results = NULL; +/*Directory scan queue*/ +static Ecore_List* evfs_metadata_directory_scan_queue = NULL; + /*--*/ static Ecore_List* evfs_metadata_queue = NULL; pid_t _metadata_fork= 0; @@ -69,6 +72,7 @@ } evfs_metadata_db_result; int evfs_metadata_extract_runner(void* data); +int evfs_metadata_scan_runner(void* data); /*DB Helper functions*/ @@ -278,9 +282,11 @@ { struct stat config_dir_stat; Evas_List* group; + char tmp[1024]; char* data; int size; int ret; + evfs_filereference* ref; if (!evfs_metadata_state) { evfs_metadata_state++; @@ -293,6 +299,7 @@ if (!evfs_object_client_is_get()) { printf(". EVFS metadata initialise..\n"); + /*Setup the metadata extract queue*/ evfs_metadata_queue = ecore_list_new(); /*String edd*/ @@ -373,9 +380,17 @@ eet_close(_evfs_metadata_eet); } - evfs_metadata_db_init(&db); + /*Setup the directory scan queue*/ + ref = NEW(evfs_filereference); + ref->plugin_uri = strdup("file"); + ref->path = homedir; + + evfs_metadata_directory_scan_queue = ecore_list_new(); + ecore_list_append(evfs_metadata_directory_scan_queue, ref); + + ecore_timer_add(1.0, evfs_metadata_scan_runner, NULL); ecore_timer_add(1.0, evfs_metadata_extract_runner, NULL); } @@ -397,9 +412,9 @@ if (ret == SQLITE_ROW) { g = calloc(1, sizeof(evfs_metadata_group_header)); - g->name = strdup(sqlite3_column_text(pStmt,0)); + g->name = strdup((char*)sqlite3_column_text(pStmt,0)); if (sqlite3_column_text(pStmt, 1)) { - g->visualhint = strdup(sqlite3_column_text(pStmt,1)); + g->visualhint = strdup((char*)sqlite3_column_text(pStmt,1)); } ret_list = evas_list_append(ret_list, g); @@ -436,7 +451,7 @@ ret = sqlite3_step(pStmt); if (ret == SQLITE_ROW) - ecore_list_append(ret_list, strdup(sqlite3_column_text(pStmt,0))); + ecore_list_append(ret_list, strdup((char*)sqlite3_column_text(pStmt,0))); } while (ret == SQLITE_ROW); sqlite3_reset(pStmt); @@ -654,6 +669,38 @@ clone = evfs_filereference_clone(ref); ecore_list_append(evfs_metadata_queue, clone); } +} + + +int evfs_metadata_scan_runner(void* data) +{ + evfs_filereference* ref; + + if ((ref = ecore_list_remove_first( + evfs_metadata_directory_scan_queue))) { + + evfs_filereference_sanitise(ref); + printf("Scanning %s://%s..\n", ref->plugin_uri, ref->path); + + if (ref->plugin) { + Ecore_List* dir_list; + evfs_command* c = NEW(evfs_command); + c->file_command.files = calloc(1, sizeof(evfs_filereference*)); + c->file_command.files[0] = ref; + c->file_command.num_files = 1; + + (*EVFS_PLUGIN_FILE(ref->plugin)->functions->evfs_dir_list) + (NULL, c, &dir_list); + + evfs_cleanup_file_command(c); + + printf("List returned: %d\n", ecore_list_nodes(dir_list)); + } else { + evfs_cleanup_filereference(ref); + } + } + + return 1; } int evfs_metadata_extract_runner(void* data) ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys -- and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs