X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/blobdiff_plain/892e36c1af3105e5f548a4ef8b9f777b95d47fc2..48f3ef9189fd86cea17f4d69faef38a0541aebe3:/messages.h diff --git a/messages.h b/messages.h index 34e9248..1886301 100644 --- a/messages.h +++ b/messages.h @@ -5,21 +5,26 @@ #include #include #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 { @@ -27,7 +32,7 @@ public: // Push a message on queue void push(m_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); @@ -38,7 +43,7 @@ public: private: mutex_t mutex; condition_t cond; - std::queue queue; + sync_queue queue; }; #endif // !MESSAGES_H