]> AND Private Git Repository - loba.git/blob - neighbor.h
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Move loading of atomic vs. cstdatomic in atomic_compat.h.
[loba.git] / neighbor.h
1 #ifndef NEIGHBOR_H
2 #define NEIGHBOR_H
3
4 #include <utility>
5 #include <xbt/log.h>
6 #include "hostdata.h"
7
8 class neighbor {
9 public:
10     neighbor(const char* hostname);
11     ~neighbor();
12
13     // returns name, ctrl or data mbox
14     const char* get_name() const        { return host->get_name();      }
15     const char* get_ctrl_mbox() const   { return host->get_ctrl_mbox(); }
16     const char* get_data_mbox() const   { return host->get_data_mbox(); }
17
18     // Getter and setter for load
19     double get_load() const             { return load;    }
20     void set_load(double amount)        { load = amount;  }
21
22     // Getter and setter for debt
23     double get_debt() const             { return debt;   }
24     void set_debt(double amount)        { debt = amount; }
25
26     // Getter and setter for credit
27     double get_credit() const           { return credit;   }
28     void set_credit(double amount)      { credit = amount; }
29
30     // Getter and setter for to_send
31     double get_to_send() const          { return to_send;    }
32     void set_to_send(double amount)     { to_send = amount;  }
33
34     // Prints its name and load on given category, with given
35     // priority.  If verbose is true, prints debt and to_send too.
36     void print(bool verbose = false,
37                e_xbt_log_priority_t logp = xbt_log_priority_info,
38                xbt_log_category_t cat = _XBT_LOGV(default)) const;
39
40 private:
41     const hostdata* host;       // pointer to this neighbor's hostdata
42
43     double load;                // the load information we know for it
44     double debt;                // the load we had to send to it, but
45                                 // that we have not currently sent
46                                 // (bookkeeping mode)
47     double credit;              // the load we have to receive from it
48                                 // (bookkeeping mode)
49
50     double to_send;             // the load we have to send to it
51 };
52
53 #endif // !NEIGHBOR_H
54
55 // Local variables:
56 // mode: c++
57 // End: