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

Private GIT Repository
Be consistent and hold mutex in any case when returning from condition_t::timedwait().
[loba.git] / deployment.h
index 2009b36c8a8d28e58f6823fc5a6bbe4378a8599b..e1e0d92c33d551046c7ca51aa8dffd68123c7436 100644 (file)
@@ -3,11 +3,14 @@
 
 #include <vector>
 
 
 #include <vector>
 
+// Deploy an application automatically, according to the global parameters
 void MY_launch_application();
 
 void MY_launch_application();
 
+// Base class for deployment generators...
 class deployment_generator {
 public:
     deployment_generator();
 class deployment_generator {
 public:
     deployment_generator();
+    virtual ~deployment_generator() { }
 
     size_t size() const { return hosts.size(); }
     void set_load(int host, double load);
 
     size_t size() const { return hosts.size(); }
     void set_load(int host, double load);
@@ -15,10 +18,13 @@ public:
     void set_link(int host1, int host2);
 
     virtual void generate() = 0;
     void set_link(int host1, int host2);
 
     virtual void generate() = 0;
+    void distribute_load();
     void deploy();
 
 private:
     struct host_parameters {
     void deploy();
 
 private:
     struct host_parameters {
+        host_parameters(): load(0.0) { }
+
         double load;
         std::vector<int> neighbors;
     };
         double load;
         std::vector<int> neighbors;
     };
@@ -37,7 +43,7 @@ DEPLOYMENT(hcube);
 DEPLOYMENT(line);
 DEPLOYMENT(ring);
 DEPLOYMENT(star);
 DEPLOYMENT(line);
 DEPLOYMENT(ring);
 DEPLOYMENT(star);
-// DEPLOYMENT(torus);
+DEPLOYMENT(torus);
 
 #undef DEPLOYMENT
 
 
 #undef DEPLOYMENT