From: Arnaud Giersch Date: Tue, 22 Jan 2019 13:35:21 +0000 (+0100) Subject: Convert message_type to enum class. X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/loba.git/commitdiff_plain/a6b73fab30fa59bb7ce701ebec47e52e1d373e26?ds=inline Convert message_type to enum class. --- diff --git a/messages.cpp b/messages.cpp index 70e2236..e20c4ca 100644 --- a/messages.cpp +++ b/messages.cpp @@ -14,10 +14,10 @@ message::message(message_type t, double a, double c) // compute message size // arbitrary: 8 for type, and 8 for each double switch (type) { - case CTRL: + case message_type::CTRL: size = opt::bookkeeping ? 24 : 16; // type + amount + (credit)? break; - case DATA: + case message_type::DATA: size = 16 + opt::comm_cost(amount); // type + amount + data size break; default: @@ -30,22 +30,22 @@ std::string message::to_string() { std::ostringstream oss; switch (type) { - case CTRL: + case message_type::CTRL: oss << "CTRL: " << amount << " (info)"; if (opt::bookkeeping) oss << "; " << credit << " (credit)"; break; - case DATA: + case message_type::DATA: oss << "DATA: " << amount << " (load)"; break; - case CTRL_CLOSE: + case message_type::CTRL_CLOSE: oss << "CTRL_CLOSE"; break; - case DATA_CLOSE: + case message_type::DATA_CLOSE: oss << "DATA_CLOSE"; break; default: - oss << "UNKNOWN MESSAGE TYPE: " << type; + oss << "UNKNOWN MESSAGE TYPE: " << static_cast(type); break; } return oss.str(); diff --git a/messages.h b/messages.h index 925047d..02859c9 100644 --- a/messages.h +++ b/messages.h @@ -10,7 +10,7 @@ class message { public: - enum message_type { CTRL, DATA, CTRL_CLOSE, DATA_CLOSE }; + enum class message_type { CTRL, DATA, CTRL_CLOSE, DATA_CLOSE }; message(message_type t, double a, double c = 0.0); diff --git a/process.cpp b/process.cpp index 811804f..76082c5 100644 --- a/process.cpp +++ b/process.cpp @@ -389,7 +389,8 @@ void process::ctrl_send(neighbor& nb) debt_to_send = 0.0; } if (info_to_send != prev_load_broadcast || debt_to_send > 0.0) { - message* msg = new message(message::CTRL, info_to_send, debt_to_send); + message* msg = + new message(message::message_type::CTRL, info_to_send, debt_to_send); add_ctrl_send_mesg(msg->get_size()); comm.ctrl_send(nb.get_ctrl_mbox(), msg); } @@ -436,7 +437,7 @@ void process::data_send(neighbor& nb) amount = std::min(load_to_send, opt::max_transfer_amount); else amount = load_to_send; - message* msg = new message(message::DATA, amount); + message* msg = new message(message::message_type::DATA, amount); add_data_send_mesg(msg->get_size()); comm.data_send(nb.get_data_mbox(), msg); load_to_send -= amount; @@ -445,12 +446,14 @@ void process::data_send(neighbor& nb) void process::ctrl_close(neighbor& nb) { - comm.ctrl_send(nb.get_ctrl_mbox(), new message(message::CTRL_CLOSE, 0.0)); + comm.ctrl_send(nb.get_ctrl_mbox(), + new message(message::message_type::CTRL_CLOSE, 0.0)); } void process::data_close(neighbor& nb) { - comm.data_send(nb.get_data_mbox(), new message(message::DATA_CLOSE, 0.0)); + comm.data_send(nb.get_data_mbox(), + new message(message::message_type::DATA_CLOSE, 0.0)); } void process::ctrl_receive(double timeout) @@ -460,7 +463,7 @@ void process::ctrl_receive(double timeout) XBT_DEBUG("%sblocking receive on ctrl (%g)", "\0non-" + !timeout, timeout); while (ctrl_close_pending && comm.ctrl_recv(msg, from, timeout)) { - if (msg->get_type() != message::CTRL_CLOSE) + if (msg->get_type() != message::message_type::CTRL_CLOSE) add_ctrl_recv_mesg(msg->get_size()); handle_message(msg, from); timeout = 0.0; @@ -474,7 +477,7 @@ void process::data_receive(double timeout) XBT_DEBUG("%sblocking receive on data (%g)", "\0non-" + !timeout, timeout); while (data_close_pending && comm.data_recv(msg, from, timeout)) { - if (msg->get_type() != message::DATA_CLOSE) + if (msg->get_type() != message::message_type::DATA_CLOSE) add_data_recv_mesg(msg->get_size()); handle_message(msg, from); timeout = 0.0; @@ -484,7 +487,7 @@ void process::data_receive(double timeout) void process::handle_message(message* msg, msg_host_t from) { switch (msg->get_type()) { - case message::CTRL: { + case message::message_type::CTRL: { neighbor* n = rev_neigh[from]; n->set_load(msg->get_amount() + n->get_to_send()); if (opt::bookkeeping) { @@ -494,18 +497,18 @@ void process::handle_message(message* msg, msg_host_t from) } break; } - case message::DATA: { + case message::message_type::DATA: { neighbor* n = rev_neigh[from]; double ld = msg->get_amount(); received_load += ld; n->set_credit(n->get_credit() - ld); break; } - case message::CTRL_CLOSE: + case message::message_type::CTRL_CLOSE: ctrl_close_pending--; close_received = true; break; - case message::DATA_CLOSE: + case message::message_type::DATA_CLOSE: data_close_pending--; close_received = true; break;