X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/5279f43fc9be71815091e79c76d5bc04c8c88421..46ef54f8ce05841e476c3cd9d425a9c680a84882:/options.h?ds=inline diff --git a/options.h b/options.h index 43286f3..e751535 100644 --- a/options.h +++ b/options.h @@ -1,26 +1,57 @@ #ifndef OPTIONS_H #define OPTIONS_H +#include #include "cost_func.h" +#include "deployment.h" +#include "named_object_list.h" +#include "process.h" // Global parameters, shared by all the processes namespace opt { - extern const char* program_name; - - extern const char* platform_file; - extern const char* application_file; - + // Global options + extern std::string program_name; extern int help_requested; extern bool version_requested; - extern unsigned maxiter; - extern bool exit_on_close; + // Simulation parameters + extern unsigned log_rate; + + // Platform and deployment + extern std::string platform_file; + extern std::string deployment_file; + // Automatic deployment + namespace auto_depl { + extern bool enabled; + extern std::string topology; + extern unsigned nhosts; + extern double load; + } + + // Load balancing algorithm + extern std::string loba_algo; extern bool bookkeeping; + // Application parameters extern cost_func comp_cost; + extern cost_func comm_cost; + extern unsigned maxiter; + extern bool exit_on_close; + + // Named parameters lists + extern struct loba_algorithms_type: + public named_object_list2 { + loba_algorithms_type(); + } loba_algorithms; + + extern struct topologies_type: + public named_object_list { + topologies_type(); + } topologies; + // Utility functions int parse_args(int* argc, char* argv[]); void print(); void usage();