Commit 1c72bf4e authored by Thomas Rodgers's avatar Thomas Rodgers

Clean up of metadata_t

* There is no clear reason why the map should hold const std::strings
* This class is never derived, there doesn't seem to be a compelling
  reason to ever do so, so no need to make virtual members
* In general const member data is an anti-pattern, the *only* reason
  is to prevent assignability, and the accepted idiom for that is to
  to declare the assigment operator private. This change does so, and
  also prevents copy construction.
parent d9fb1d36
...@@ -25,10 +25,6 @@ zmq::metadata_t::metadata_t (const dict_t &dict) : ...@@ -25,10 +25,6 @@ zmq::metadata_t::metadata_t (const dict_t &dict) :
{ {
} }
zmq::metadata_t::~metadata_t ()
{
}
const char *zmq::metadata_t::get (const std::string &property) const const char *zmq::metadata_t::get (const std::string &property) const
{ {
dict_t::const_iterator it = dict.find (property); dict_t::const_iterator it = dict.find (property);
......
...@@ -30,29 +30,29 @@ namespace zmq ...@@ -30,29 +30,29 @@ namespace zmq
class metadata_t class metadata_t
{ {
public: public:
typedef std::map <std::string, std::string> dict_t;
typedef std::map <std::string, const std::string> dict_t;
metadata_t (const dict_t &dict); metadata_t (const dict_t &dict);
virtual ~metadata_t ();
// Returns pointer to property value or NULL if // Returns pointer to property value or NULL if
// property is not found. // property is not found.
virtual const char *get (const std::string &property) const; const char *get (const std::string &property) const;
virtual void add_ref (); void add_ref ();
// Drop reference. Returns true iff the reference // Drop reference. Returns true iff the reference
// counter drops to zero. // counter drops to zero.
virtual bool drop_ref (); bool drop_ref ();
private: private:
metadata_t(const metadata_t&);
metadata_t & operator=(const metadata_t&);
// Reference counter. // Reference counter.
atomic_counter_t ref_cnt; atomic_counter_t ref_cnt;
// Dictionary holding metadata. // Dictionary holding metadata.
const dict_t dict; dict_t dict;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment