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

Private GIT Repository
Add copyright, and license files.
[loba.git] / messages.h
index 70d675da7994f971efc41aca6bc4844f810a85ad..cc6efbc2b5cf5e0898e90e95d5783e30fc45991c 100644 (file)
@@ -4,33 +4,39 @@
 #include <queue>
 #include <string>
 #include <msg/msg.h>
+#include "simgrid_features.h"
 #include "synchro.h"
+#include "sync_queue.h"
 
 class message {
 public:
-    enum message_type { INFO, CREDIT, LOAD, CTRL_CLOSE, DATA_CLOSE };
+    enum message_type { CTRL, DATA, CTRL_CLOSE, DATA_CLOSE };
 
-    message(message_type t, double a): type(t), amount(a) { }
+    message(message_type t, double a, double c = 0.0);
 
     message_type get_type() const       { return type;   }
     double get_amount() const           { return amount; }
+    double get_credit() const           { return credit; }
+    double get_size() const             { return size;   }
 
     std::string to_string();
 
 private:
     message_type type;
     double amount;
+    double credit;
+    double size;
 };
 
 class message_queue {
 public:
     // Push a message on queue
-    void push(m_task_t task);
+    void push(msg_task_t task);
 
     // Try to pop a message.  Returns true on success.
     // Parameter "timeout" may be 0 for non-blocking operation, -1 for
     // infinite waiting, or any positive timeout.
-    bool pop(message*& msg, m_host_t& from, double timeout);
+    bool pop(message*& msg, msg_host_t& from, double timeout);
 
     bool empty() const                  { return queue.empty(); }
     size_t size() const                 { return queue.size();  }
@@ -38,7 +44,7 @@ public:
 private:
     mutex_t mutex;
     condition_t cond;
-    std::queue<m_task_t> queue;
+    sync_queue<msg_task_t> queue;
 };
 
 #endif // !MESSAGES_H