X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/f29b38ef2a056daa14bbfda2fce78063faa773d4..09d41417e496c5599b00a615f4b3d67b0f6270f3:/neighbor.h?ds=sidebyside diff --git a/neighbor.h b/neighbor.h index 13d1108..fdf096c 100644 --- a/neighbor.h +++ b/neighbor.h @@ -1,22 +1,53 @@ #ifndef NEIGHBOR_H #define NEIGHBOR_H -#include -#include +#include +#include +#include "hostdata.h" class neighbor { public: - neighbor(const char* const name_) - : name(name_) - , load(std::numeric_limits::infinity()) { - } - const std::string& getName() const { return name; } - double getLoad() const { return load; } - void setLoad(double l) { load = l; } + neighbor(const char* hostname); + ~neighbor(); + + // returns name, ctrl or data mbox + const char* get_name() const { return host->get_name(); } + const char* get_ctrl_mbox() const { return host->get_ctrl_mbox(); } + const char* get_data_mbox() const { return host->get_data_mbox(); } + + // Getter and setter for load + double get_load() const { return load; } + void set_load(double amount) { load = amount; } + + // Getter and setter for debt + double get_debt() const { return debt; } + void set_debt(double amount) { debt = amount; } + + // Getter and setter for credit + double get_credit() const { return credit; } + void set_credit(double amount) { credit = amount; } + + // Getter and setter for to_send + double get_to_send() const { return to_send; } + void set_to_send(double amount) { to_send = amount; } + + // Prints its name and load on given category, with given + // priority. If verbose is true, prints debt and to_send too. + void print(bool verbose = false, + e_xbt_log_priority_t logp = xbt_log_priority_info, + xbt_log_category_t cat = _XBT_LOGV(default)) const; private: - std::string name; - double load; + const hostdata* host; // pointer to this neighbor's hostdata + + double load; // the load information we know for it + double debt; // the load we had to send to it, but + // that we have not currently sent + // (bookkeeping mode) + double credit; // the load we have to receive from it + // (bookkeeping mode) + + double to_send; // the load we have to send to it }; #endif // !NEIGHBOR_H