X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/892e36c1af3105e5f548a4ef8b9f777b95d47fc2..HEAD:/messages.h?ds=inline diff --git a/messages.h b/messages.h index 34e9248..02859c9 100644 --- a/messages.h +++ b/messages.h @@ -3,34 +3,40 @@ #include #include -#include +#include +#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 class 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 get a message. Returns true on success. + // 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 queue; + sync_queue queue; }; #endif // !MESSAGES_H