Ejemplo n.º 1
0
int cmd_commit_graph(int argc, const char **argv, const char *prefix)
{
	static struct option builtin_commit_graph_options[] = {
		OPT_STRING(0, "object-dir", &opts.obj_dir,
			N_("dir"),
			N_("The object directory to store the graph")),
		OPT_END(),
	};

	if (argc == 2 && !strcmp(argv[1], "-h"))
		usage_with_options(builtin_commit_graph_usage,
				   builtin_commit_graph_options);

	git_config(git_default_config, NULL);
	argc = parse_options(argc, argv, prefix,
			     builtin_commit_graph_options,
			     builtin_commit_graph_usage,
			     PARSE_OPT_STOP_AT_NON_OPTION);

	if (argc > 0) {
		if (!strcmp(argv[0], "read"))
			return graph_read(argc, argv);
		if (!strcmp(argv[0], "verify"))
			return graph_verify(argc, argv);
		if (!strcmp(argv[0], "write"))
			return graph_write(argc, argv);
	}

	usage_with_options(builtin_commit_graph_usage,
			   builtin_commit_graph_options);
}
Ejemplo n.º 2
0
 std::pair<parti_ptr, parti_indx_ptr> partition() {
   std::pair<parti_ptr, parti_indx_ptr>
       ret(parti_ptr(new std::vector<long>()),
           parti_indx_ptr(new boost::unordered_multimap<long, long>()));
   graph_read("input/traffic/test/ring/partition/trafficgraph.part.4",
              ret.first,
              ret.second);
   return ret;
 };
Ejemplo n.º 3
0
graph_t *graph_load(char *path) {
    FILE *f;

    if ((f = fopen(path, "rb")) == NULL) {
        return NULL;
    }

    graph_t *graph = graph_read(f);
    fclose(f);
    return graph;
}
Ejemplo n.º 4
0
int main() {
	int n, m, c, k;
	graph_t* g=NULL;
	int* color_freq=NULL;
	skipws(stdin);

	while (!feof(stdin)) {

		graph_read(&g, &color_freq, &n, &m, &k, &c);
		/* Print out what we just read in. */
		fprintf(stdout,
		        "parameters: n = %d, m = %d, c = %d, k = %d\n",
		        n, m, c, k);
		graph_print(g, color_freq, c);

		/* Release memory & consider next graph. */
		FREE(color_freq);
		graph_free(g);
		skipws(stdin);
	}

	return EXIT_SUCCESS;
}
Ejemplo n.º 5
0
/********************************************************************
  MAIN
********************************************************************/
int main (int argc, char** argv)
{
    char cname[MAX_NAME];
    char input_line[MAX_LEN];
    int v,w;
    char* fname;
    Graph graph = NULL;
    EdgeWeight ew;
    TS computers = NULL;
    int nComputers = 0;
    int end = 0;

    FILE *fin = NULL;
    FILE *fout = NULL;

    printf("Laboratorio 12 - Esercizio 1\n\n");

    if (argc != 3){
      printf("Errore sul numero di argomenti passati al programma\n");
      printf("Usage:\n%s input_file n_nodi_max\n",argv[0]);
      exit(FAILURE);
    }

    fname = strdup (argv[1]);
    nComputers = atoi(argv[2]);

    /*/
    fname = strdup (INPUT_FILE);
    nComputers = MAX_NODES;
    */

    fin = fopen(fname, "r");
    if (fin == NULL)
    {
        printf("Errore di apertura file %s\n", fname);
        exit(FAILURE);
    }

    computers = TScrea(nComputers);
    if (computers == NULL)
        return FAILURE;

    graph = graph_read(fin, computers, nComputers);
    if (graph == NULL)
        return FAILURE;

    fclose(fin);

    while (!end)
    {
        printf("Operazioni disponibili:\n");
        printf("0 -> Uscita\n");
        printf("1 -> Verifica di connettivita'\n");
        printf("2 -> Connectivity enforcement\n");
        printf("3 -> Rimozione di un computer\n");
        printf("4 -> Inserzione di una connessione\n");
        printf("5 -> Rimozione di una connessione\n");
        printf("6 -> Identificazione connessioni critiche\n");
        printf("7 -> Visualizzazione della rete\n");
        printf("8 -> Stampa su file della rete\n");
        printf("Inserire numero operazione: ");

        scanf("%s", input_line);

        switch (input_line[0])
        {

        case '1':
            if( GRAPHconnCheck(graph) == 1)  //verifica connettivita
            {
                printf("\nVerifica della connettivita' superata\n\n");
            }
            else
            {
                printf("\nVerificata della connettivita' FALLITA\n\n");
            }
            break;

        case '2':
            if( GRAPHconnCheck(graph) == 1 )  //conn. enforcement
            {
                printf("\nErrore, il grafo e' gia' connesso\n\n");
                break;
            }
            graph_conn_enforce(graph, computers);
            break;

        case '3':
            printf("\nNome del computer da rimuovere: "); //rimozione computer
            scanf("%s",cname);
            v = TScerca(computers,cname);
            if (v < 0)
            {
                printf("Nodo non trovato\n\n");
                break;
            }
            GRAPHremoveV(graph,v);
            break;

        case '4':
            printf("\nNome del primo estremo della connessione da inserire: "); //inserzione connessione
            scanf("%s",cname);
            v = TScercaOAggiungi(computers,cname);
            if (v < 0)
            {
                printf("Impossibile inserire il nuovo nodo\n\n");
                break;
            }
            printf("Nome del seconde estremo della connessione da inserire: ");
            scanf("%s",cname);
            w = TScercaOAggiungi(computers,cname);
            if (w < 0)
            {
                printf("Impossibile inserire il nuovo nodo\n\n");
                break;
            }
            printf("Velocita' della connessione: ");
            scanf("%d", &ew.speed);
            if (ew.speed < 0)
            {
                printf("Errore, velocita' minore di 0\n\n");
                break;
            }
            GRAPHinsertE(graph,v,w,ew);
            break;

        case '5':
            printf("\nNome del primo estremo della connessione da rimuovere: "); //rimozione connessione
            scanf("%s",cname);
            v = TScerca(computers,cname);
            if (v < 0)
            {
                printf("Nodo non trovato\n\n");
                break;
            }
            printf("Nome del secondo estremo della connessione da rimuovere: ");
            scanf("%s",cname);
            w = TScerca(computers,cname);
            if (w < 0)
            {
                printf("Nodo non trovato\n\n");
                break;
            }
            GRAPHremoveE(graph,v,w);
            break;

        case '6':
            if( GRAPHconnCheck(graph) != 1 )  		//connessioni critiche
            {
                printf("\nErrore, il grafo non e' connesso\n\n");
                break;
            }
            graph_critic_conn(graph,computers);
            break;

        case '7':
            GRAPHshow(graph, computers);	//visualizzazione rete
            break;

        case '8':
            printf("\nNome del file in output: "); //stampa rete su file
            scanf("%s",cname);
            fout=fopen(cname,"w");
            if (fout == NULL)
            {
                printf("Errore di apertura file %s\n\n", fname);
                exit(FAILURE);
            }
            GRAPHprint(graph, computers, fout);
            fclose(fout);
            break;

        case '0':
            printf("\nProgramma terminato\n");
            end = 1;
            break;

        default:
            printf("Operazione sconosciuta\n\n");
        }
    }

    GRAPHfree(graph);
    TSlibera(computers);

    return SUCCESS;
}