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

Private GIT Repository
Add torus topology.
[loba.git] / neighbor.h
index 13d11084524353178293bf346b238d719ec885d5..7700cb3c9f6fc113cbfd39e1d27cd0b05f364b90 100644 (file)
@@ -1,22 +1,34 @@
 #ifndef NEIGHBOR_H
 #define NEIGHBOR_H
 
-#include <limits>
-#include <string>
+#include <utility>
+#include "hostdata.h"
 
 class neighbor {
 public:
-    neighbor(const char* const name_)
-        : name(name_)
-        , load(std::numeric_limits<double>::infinity()) {
-    }
-    const std::string& getName() const  { return name; }
-    double getLoad() const              { return load; }
-    void setLoad(double l)              { load = l;    }
+    neighbor(const char* hostname);
+    ~neighbor();
+
+    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(); }
+
+    double get_load() const             { return load;   }
+    void set_load(double amount)        { load = amount; }
+
+    double get_debt() const             { return debt;   }
+    void set_debt(double amount)        { debt = amount; }
+
+    double get_to_send() const          { return to_send;   }
+    void set_to_send(double amount)     { to_send = amount; }
 
 private:
-    std::string name;
+    const hostdata* host;
+
     double load;
+    double debt;
+
+    double to_send;
 };
 
 #endif // !NEIGHBOR_H