Minor change to 'pbd/controllable.h'
[ardour.git] / libs / pbd / pbd / enumwriter.h
index a253719c85f9b44f18cd8c876ba85c797814f215..634767e7f263b2b4219213d2abce18a3ad761ff3 100644 (file)
 #include <string>
 #include <vector>
 #include <exception>
+#include <sstream>
 
+#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<int>, std::vector<std::string>);
        void register_bits     (std::string type, std::vector<int>, std::vector<std::string>);