int main(int argc, char** argv) { POLICY policy; // default policy // policy.replication = 2; policy.coding_levels = 2; policy.codings[0].n = 10; policy.codings[0].k = 6; policy.codings[0].m = 16; policy.codings[0].n_upload = 12; policy.codings[1].n = 10; policy.codings[1].k = 6; policy.codings[1].m = 16; policy.codings[1].n_upload = 12; for (int i=1; i<argc; i++) { if (!strcmp(argv[i], "--policy")) { int retval = policy.parse(argv[++i]); if (retval) exit(1); } else if (!strcmp(argv[i], "--host_life_mean")) { params.host_life_mean = atof(argv[++i]); } else if (!strcmp(argv[i], "--connect_interval")) { params.connect_interval = atof(argv[++i]); } else if (!strcmp(argv[i], "--mean_xfer_rate")) { params.mean_xfer_rate = atof(argv[++i]); } else if (!strcmp(argv[i], "--file_size")) { params.file_size = atof(argv[++i]); } else { fprintf(stderr, "bad arg %s\n", argv[i]); exit(1); } } #if 0 HOST_ARRIVAL *h = new HOST_ARRIVAL; h->t = 0; sim.insert(h); #endif #if 0 for (int i=0; i<500; i++) { sim.insert(new SIM_HOST); } #endif SIM_FILE* dfile = new SIM_FILE(params.file_size); dfile->policy = policy; sim.insert(dfile); sim.simulate(params.sim_duration); printf("%s: simulation finished\n", now_str()); dfile->print_stats(sim.now); }
int handle_add(const char* path) { char dir[MAXPATHLEN], filename[256], buf[1024]; DB_VDA_FILE vf; POLICY policy; double size; int retval; retval = file_size(path, size); if (retval) { printf("no file %s\n", path); return -1; } safe_strcpy(dir, path); char* p = strrchr(dir, '/'); *p = 0; safe_strcpy(filename, p+1); // make sure there's a valid policy file in the dir // sprintf(buf, "%s/boinc_meta.txt", dir); retval = policy.parse(buf); if (retval) { printf("Can't parse policy file.\n"); return -1; } // add a DB record and mark it for update // vf.create_time = dtime(); safe_strcpy(vf.dir, dir); safe_strcpy(vf.file_name, filename); vf.size = size; vf.chunk_size = 0; // don't know this yet; set by vdad vf.need_update = 1; vf.initialized = 0; vf.retrieving = 0; vf.retrieved = 0; retval = vf.insert(); if (retval) { printf("Can't insert DB record\n"); return -1; } return 0; }