From 9720e7dab478ba9b3f6021df5771a0a4dff1c906 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 3 Feb 2016 19:47:34 -0500 Subject: [PATCH] Msg: C++11 --- src/Msg.cpp | 32 ++++++++++---------------------- src/Msg.h | 12 +++++------- test/msg.t.cpp | 35 +++++++++++++++++++---------------- 3 files changed, 34 insertions(+), 45 deletions(-) diff --git a/src/Msg.cpp b/src/Msg.cpp index a0b25d361..071d7500a 100644 --- a/src/Msg.cpp +++ b/src/Msg.cpp @@ -29,32 +29,12 @@ #include #include -//////////////////////////////////////////////////////////////////////////////// -Msg::Msg () -: _payload ("") -{ - // All messages are marked with the version number, so that the messages may - // be properly evaluated in context. - _header["client"] = PACKAGE_STRING; -} - -//////////////////////////////////////////////////////////////////////////////// -Msg::~Msg () -{ -} - //////////////////////////////////////////////////////////////////////////////// void Msg::set (const std::string& name, const std::string& value) { _header[name] = value; } -//////////////////////////////////////////////////////////////////////////////// -void Msg::setPayload (const std::string& payload) -{ - _payload = payload; -} - //////////////////////////////////////////////////////////////////////////////// std::string Msg::get (const std::string& name) const { @@ -65,6 +45,12 @@ std::string Msg::get (const std::string& name) const return ""; } +//////////////////////////////////////////////////////////////////////////////// +void Msg::setPayload (const std::string& payload) +{ + _payload = payload; +} + //////////////////////////////////////////////////////////////////////////////// std::string Msg::getPayload () const { @@ -72,17 +58,19 @@ std::string Msg::getPayload () const } //////////////////////////////////////////////////////////////////////////////// -void Msg::all (std::vector & names) const +std::vector Msg::all () const { + std::vector names; for (auto& i : _header) names.push_back (i.first); + + return names; } //////////////////////////////////////////////////////////////////////////////// std::string Msg::serialize () const { std::string output; - for (auto& i : _header) output += i.first + ": " + i.second + "\n"; diff --git a/src/Msg.h b/src/Msg.h index 008ae2efd..72736b6d2 100644 --- a/src/Msg.h +++ b/src/Msg.h @@ -34,21 +34,19 @@ class Msg { public: - Msg (); - ~Msg (); - void set (const std::string&, const std::string&); - void setPayload (const std::string&); std::string get (const std::string&) const; + + void setPayload (const std::string&); std::string getPayload () const; - void all (std::vector &) const; + std::vector all () const; std::string serialize () const; bool parse (const std::string&); private: - std::map _header; - std::string _payload; + std::map _header {}; + std::string _payload {""}; }; #endif diff --git a/test/msg.t.cpp b/test/msg.t.cpp index f4c4627e0..dd5f469dd 100644 --- a/test/msg.t.cpp +++ b/test/msg.t.cpp @@ -37,32 +37,35 @@ int main (int, char**) UnitTest t (13); Msg m; - t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\n\n\n", "Msg::serialize '' --> '\\n\\n'"); + t.is (m.serialize (), "\n\n", "Msg::serialize '' --> '\\n\\n'"); m.set ("name", "value"); - t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nname: value\n\n\n", "Msg::serialize 1 var"); + t.is (m.serialize (), "name: value\n\n\n", + "Msg::serialize 1 var"); m.set ("foo", "bar"); - t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nfoo: bar\nname: value\n\n\n", "Msg::serialize 2 vars"); + t.is (m.serialize (), "foo: bar\nname: value\n\n\n", + "Msg::serialize 2 vars"); m.setPayload ("payload"); - t.is (m.serialize (), std::string ("client: ") + PACKAGE_STRING + "\nfoo: bar\nname: value\n\npayload\n", "Msg::serialize 2 vars + payload"); + t.is (m.serialize (), "foo: bar\nname: value\n\npayload\n", + "Msg::serialize 2 vars + payload"); Msg m2; - t.ok (m2.parse ("foo: bar\nname: value\n\npayload\n"), "Msg::parse ok"); - t.is (m2.get ("foo"), "bar", "Msg::get"); - t.is (m2.get ("name"), "value", "Msg::get"); - t.is (m2.getPayload (), "payload\n", "Msg::getPayload"); + t.ok (m2.parse ("foo: bar\nname: value\n\npayload\n"), + "Msg::parse ok"); + t.is (m2.get ("foo"), "bar", "Msg::get"); + t.is (m2.get ("name"), "value", "Msg::get"); + t.is (m2.getPayload (), "payload\n", "Msg::getPayload"); Msg m3; - t.ok (m3.parse ("foo:bar\nname: value\n\npayload\n"), "Msg::parse ok"); - t.is (m3.get ("foo"), "bar", "Msg::get"); - t.is (m3.get ("name"), "value", "Msg::get"); - t.is (m3.getPayload (), "payload\n", "Msg::getPayload"); - - std::vector vars; - m3.all (vars); - t.ok (vars.size () == 2, "Msg::all --> 2 vars"); + t.ok (m3.parse ("foo:bar\nname: value\n\npayload\n"), + "Msg::parse ok"); + t.is (m3.get ("foo"), "bar", "Msg::get"); + t.is (m3.get ("name"), "value", "Msg::get"); + t.is (m3.getPayload (), "payload\n", "Msg::getPayload"); + t.ok (m3.all () == std::vector {"foo", "name"}, + "Msg::all --> {'foo', 'name'}"); return 0; }