#define NEIGHBOR_H
#include <utility>
+#include <xbt/log.h>
#include "hostdata.h"
class neighbor {
~neighbor();
// returns name, ctrl or data mbox
- const char* get_name() const { return host->get_name(); }
+ 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; }
+ 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; }
+ 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:
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
- // (in bookkeeping mode)
+ // (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
};