Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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;
}