00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef COLVARPARAMS_H
00011 #define COLVARPARAMS_H
00012
00013 #include <map>
00014
00016
00017
00018 class colvarparams {
00019
00020 public:
00021
00023 int param_exists(std::string const ¶m_name);
00024
00026 virtual std::vector<std::string> get_param_names();
00027
00029 virtual std::vector<std::string> get_param_grad_names();
00030
00032 virtual void const *get_param_ptr(std::string const ¶m_name);
00033
00035 virtual void const *get_param_grad_ptr(std::string const ¶m_name);
00036
00038 virtual cvm::real get_param(std::string const ¶m_name);
00039
00041 virtual int set_param(std::string const ¶m_name, void const *new_value);
00042
00043 protected:
00044
00046 colvarparams();
00047
00049 virtual ~colvarparams();
00050
00052 std::map<std::string, void const *> param_map;
00053
00055 std::map<std::string, colvarvalue const *> param_grad_map;
00056
00058 void register_param(std::string const ¶m_name, void *param_ptr);
00059
00061 void register_param_grad(std::string const ¶m_name,
00062 colvarvalue *param_grad_ptr);
00063
00064 };
00065
00066 #endif