static int get_percentage(const char *url) { void *db = metadb_get(); int remain, done; int rval; if(db == NULL) return 0; remain = count_items(db, "SELECT count(*) " "FROM item " "WHERE url LIKE ?1 " "AND contenttype = 1 " "AND indexstatus == 0", url); if(remain) { done = count_items(db, "SELECT count(*) " "FROM item " "WHERE url LIKE ?1 " "AND contenttype = 1 " "AND indexstatus > 1", url); rval = MIN(done * 100 / (done+remain), 100); } else { rval = 100; } metadb_close(db); return rval; }
void run_test(int nargs, char* args[]) { if (nargs < 2) { return; } (void) myreaddir; char* dbname = args[1]; struct MetaDB mdb; printf("metadb_init return value %d\n", metadb_init(&mdb, dbname, NULL, 0, 51)); listmdb(&mdb); /* int dir_id = 1; int partition_id = 1; num_print_entries = 0; myreaddir(mdb, dir_id, partition_id); printf("After myreaddir %d \n", num_print_entries); struct stat statbuf; printf("%d\n", metadb_lookup(mdb, dir_id, partition_id, "h0.giga.ycsb.marmot.pdl.cmu.local_p5369_f34", &statbuf)); */ metadb_close(&mdb); }
static void * bmdb_thread(void *aux) { bmdb_t *b = aux; void *db = metadb_get(); bmdb_query_exec(db, b); metadb_close(db); bmdb_destroy(b); return NULL; }
void run_test(int nargs, char* args[]) { if (nargs < 2) { return; } struct timespec start, end; char* dbname = args[1]; drop_buffer_cache(); trace_loader_t loader; load_trace(&loader, args[2], atoi(args[3])); struct MetaDB mdb; metadb_init(&mdb, dbname); enable_monitor_thread(&mdb); clock_gettime(CLOCK_MONOTONIC, &start); get_metric(); if (strcmp(args[4], "create") == 0) { run_create(mdb, &loader, atoi(args[5])); } else { run_query(mdb, &loader, atoi(args[5]), atoi(args[6]), atoi(args[7])); } clock_gettime(CLOCK_MONOTONIC, &end); disable_monitor_thread(); metadb_close(mdb); get_metric(); uint64_t timeElapsed = timespecDiff(&end, &start); timeElapsed = timespecDiff(&end, &start); printf("%s.%d %d %.1f \n", args[4], num_test, (int) time(NULL), timeElapsed/1.0); destroy_trace_loader(&loader); drop_buffer_cache(); }
static void file_open_file(prop_t *page, const char *url, fa_stat_t *fs) { char errbuf[200]; metadata_t *md; void *db = metadb_get(); md = metadb_metadata_get(db, url, fs->fs_mtime); metadb_close(db); if(md == NULL) md = fa_probe_metadata(url, errbuf, sizeof(errbuf), NULL); if(md == NULL) { nav_open_errorf(page, _("Unable to open file: %s"), errbuf); return; } if(md->md_redirect != NULL) url = md->md_redirect; prop_t *meta = prop_create_root("metadata"); metadata_to_proptree(md, meta, 0); switch(md->md_contenttype) { case CONTENT_ARCHIVE: case CONTENT_ALBUM: file_open_browse(page, url, fs->fs_mtime); break; case CONTENT_AUDIO: if(!file_open_audio(page, url)) { break; } playqueue_play(url, meta, 0); playqueue_open(page); meta = NULL; break; case CONTENT_VIDEO: case CONTENT_DVD: backend_open_video(page, url, 0); break; case CONTENT_IMAGE: file_open_image(page, meta); meta = NULL; break; case CONTENT_PLUGIN: plugin_open_file(page, url); break; default: nav_open_errorf(page, _("Can't handle content type %d"), md->md_contenttype); break; } prop_destroy(meta); metadata_destroy(md); }