Go to the documentation of this file.00001 #ifndef PLUGIN_H
00002 #define PLUGIN_H
00003
00004 #include <string>
00005 #include <list>
00006
00007 namespace utilmm
00008 {
00009 class config_set;
00010 }
00011 namespace Typelib
00012 {
00013 class Registry;
00014 }
00015
00016 class Plugin
00017 {
00018 public:
00019 typedef std::list<std::string> OptionList;
00020
00021 public:
00022 Plugin(const std::string& name, const std::string& type);
00023 virtual ~Plugin();
00024
00025 std::string getName() const;
00026 std::string getType() const;
00027
00028
00029 virtual OptionList getOptions() const;
00030 virtual bool apply(
00031 const OptionList& remaining
00032 , const utilmm::config_set& options
00033 , Typelib::Registry& registry) = 0;
00034
00035 private:
00036 std::string m_name;
00037 std::string m_type;
00038 };
00039
00040 #endif
00041