/* core/label.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_LABEL_H__ #define __INCLUDED_CORE_LABEL_H__ #include #include "auxiliary/functions.h" namespace core { /** * @brief base class for objects with a name and a label */ class Label { public: Label(); Label(const char *label); Label(const std::string & label); ~Label(); /* --- inspectors ------------------------------------------------- */ inline const std::string & label() const { return labelstr; } inline const std::string & name() const { return namestr; } /* --- mutators --------------------------------------------------- */ void set_label(const std::string & label); void set_label(const char *label); void set_name(const std::string & name); void set_name(const char *name); /** * @brief static compare function for std::container sort functions */ static bool compare(const Label *first, const Label *second); private: std::string labelstr; std::string namestr; }; // class Label } // namespace core #endif // __INCLUDED_CORE_LABEL_H__