#define NEIGHBOR_H
#include <utility>
+#include <xbt/log.h>
#include "hostdata.h"
class neighbor {
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 to_send
double get_to_send() const { return to_send; }
void set_to_send(double amount) { to_send = amount; }
+ void add_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:
- const hostdata* host;
+ const hostdata* host; // pointer to this neighbor's hostdata
- double load;
- double debt;
+ 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
+ // (in bookkeeping mode)
- double to_send;
+ double to_send; // the load we have to send to it
};
#endif // !NEIGHBOR_H