16 virtual ~Factory() { }
18 virtual Tool *create(GlDbg &) const = 0;
26 virtual void decode(const char *, unsigned) = 0;
27 virtual void process_started() { }
28 virtual void process_stopped(int) { }
30 static std::list<Factory *> &get_factories();
35 class RegisteredTool: public Tool
38 class Factory: public Tool::Factory
40 virtual Tool *create(GlDbg &g) const { return new T(g); }
43 static Factory factory;
46 // The no-op expression is necessary to instantiate the static member
47 RegisteredTool() { (void)factory; }
51 typename RegisteredTool<T>::Factory RegisteredTool<T>::factory;