int bb_readdir(const char *path, void *buf, fuse_fill_dir_t filler, off_t offset, struct fuse_file_info *fi) { int retstat = 0; char *files[100]; files[0] = "."; files[1] = ".."; log_msg("\nbb_readdir(path=\"%s\", buf=0x%08x, filler=0x%08x, offset=%lld, fi=0x%08x)\n", path, buf, filler, offset, fi); int i, count = myreaddir(path, &files[2]) + 2; log_msg("count: %d, files[2]: %s\n", count, files[1]); for (i = 0; i < count; i++) { log_msg("calling filler with name %s\n", files[i]); if (filler(buf, files[i], NULL, 0) != 0) { log_msg(" ERROR bb_readdir filler: buffer full"); return -ENOMEM; } } log_fi(fi); return retstat; }
void run_test(int nargs, char* args[]) { if (nargs < 1) { return; } char* dbname = args[1]; struct MetaDB mdb; printf("metadb_init return value %d\n", metadb_init(&mdb, dbname)); 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); }