X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fpbd%2Fpbd%2Fenumwriter.h;h=634767e7f263b2b4219213d2abce18a3ad761ff3;hb=59822e8dd273df9ec80051b4f3be83dfec39c809;hp=a253719c85f9b44f18cd8c876ba85c797814f215;hpb=ded4a143db069785aa33eeb6dc9da02770e3ae8e;p=ardour.git diff --git a/libs/pbd/pbd/enumwriter.h b/libs/pbd/pbd/enumwriter.h index a253719c85..634767e7f2 100644 --- a/libs/pbd/pbd/enumwriter.h +++ b/libs/pbd/pbd/enumwriter.h @@ -25,18 +25,34 @@ #include #include #include +#include +#include "pbd/libpbd_visibility.h" namespace PBD { -class unknown_enumeration : public std::exception { +class LIBPBD_API unknown_enumeration : public std::exception { public: - virtual const char *what() const throw() { return "unknown enumerator in PBD::EnumWriter"; } + unknown_enumeration (std::string const & e) throw() { + std::stringstream s; + s << "unknown enumerator " << e << " in PBD::EnumWriter"; + _message = s.str (); + } + + ~unknown_enumeration () throw() {} + + virtual const char *what() const throw() { + return _message.c_str(); + } + +private: + std::string _message; }; -class EnumWriter { +class LIBPBD_API EnumWriter { public: static EnumWriter& instance(); + static void destroy(); void register_distinct (std::string type, std::vector, std::vector); void register_bits (std::string type, std::vector, std::vector);