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

Private GIT Repository
58f6c1cfac6a937ea09691b4d73cd5971b0bdf92
[loba.git] / neighbor.h
1 #ifndef NEIGHBOR_H
2 #define NEIGHBOR_H
3
4 #include <utility>
5 #include "hostdata.h"
6
7 class neighbor {
8 public:
9     neighbor(const char* hostname);
10     ~neighbor();
11
12     // returns name, ctrl or data mbox
13     const char* get_name() const        { return host->get_name(); }
14     const char* get_ctrl_mbox() const   { return host->get_ctrl_mbox(); }
15     const char* get_data_mbox() const   { return host->get_data_mbox(); }
16
17     // Getter and setter for load
18     double get_load() const             { return load;   }
19     void set_load(double amount)        { load = amount; }
20
21     // Getter and setter for debt
22     double get_debt() const             { return debt;   }
23     void set_debt(double amount)        { debt = amount; }
24
25     // Getter and setter for to_send
26     double get_to_send() const          { return to_send;   }
27     void set_to_send(double amount)     { to_send = amount; }
28     void add_to_send(double amount)     { to_send += amount; }
29
30 private:
31     const hostdata* host;       // pointer to this neighbor's hostdata
32
33     double load;                // the load information we know for it
34     double debt;                // the load we had to send to it, but
35                                 // that we have not currently sent
36                                 // (in bookkeeping mode)
37
38     double to_send;             // the load we have to send to it
39 };
40
41 #endif // !NEIGHBOR_H
42
43 // Local variables:
44 // mode: c++
45 // End: