X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/f29b38ef2a056daa14bbfda2fce78063faa773d4..c771a55e40d2a41d607a0da1b67cd1f7d546ccc8:/process.h diff --git a/process.h b/process.h index ea35003..a49c6ef 100644 --- a/process.h +++ b/process.h @@ -1,22 +1,42 @@ #ifndef PROCESS_H #define PROCESS_H +#include #include -#include +#include #include "communicator.h" #include "neighbor.h" class process { public: - process(int argc, char *argv[]); + process(int argc, char* argv[]); ~process() { }; - void print_loads(e_xbt_log_priority_t logp = xbt_log_priority_info); int run(); private: - communicator comm; std::vector neigh; + std::map rev_neigh; + + communicator comm; + int ctrl_close_pending; + int data_close_pending; + + unsigned iter; + double load; + double expected_load; + + void compute(); + virtual double load_balance(double my_load); + void send1_no_bookkeeping(neighbor& nb); + void send1_bookkeeping(neighbor& nb); + void send(); + bool receive(bool wait_for_close); + void finalize1(neighbor& nb); + void finalize(); + void print_loads(e_xbt_log_priority_t logp = xbt_log_priority_info); + + void insert_neighbor_in_map(neighbor& nb); }; #endif // !PROCESS_H