21 #ifndef __pbd_enumwriter_h__
22 #define __pbd_enumwriter_h__
38 s <<
"unknown enumerator " << e <<
" in PBD::EnumWriter";
44 virtual const char *
what()
const throw() {
45 return _message.c_str();
55 static void destroy();
57 void register_distinct (std::string type, std::vector<int>, std::vector<std::string>);
58 void register_bits (std::string type, std::vector<int>, std::vector<std::string>);
60 std::string write (std::string type,
int value);
61 int read (std::string type, std::string value);
63 void add_to_hack_table (std::string str, std::string hacked_str);
76 : values (v), names (s), bitwise (b) {}
79 typedef std::map<std::string, EnumRegistration>
Registry;
97 #define enum_2_string(e) (PBD::EnumWriter::instance().write (typeid(e).name(), e))
98 #define string_2_enum(str,e) (PBD::EnumWriter::instance().read (typeid(e).name(), (str)))
std::vector< std::string > names
unknown_enumeration(std::string const &e)
std::map< std::string, EnumRegistration > Registry
std::vector< int > values
virtual const char * what() const
static std::map< std::string, std::string > hack_table
EnumRegistration(std::vector< int > &v, std::vector< std::string > &s, bool b)
static EnumWriter * _instance