00001 #ifndef SCTCALIBRATIONCONTROLLER_CONFIGUPDATERMANAGER_H 00002 #define SCTCALIBRATIONCONTROLLER_CONFIGUPDATERMANAGER_H 00003 00004 #include <string> 00005 #include <map> 00006 #include <boost/shared_ptr.hpp> 00007 00008 using std::map; 00009 using std::string; 00010 using boost::shared_ptr; 00011 00012 00013 namespace SctData { 00014 class TestResult; 00015 } 00016 00017 namespace SctCalibrationController { 00018 00019 class ConfigUpdater; 00020 00027 class ConfigUpdaterManager { 00028 public: 00033 static ConfigUpdaterManager& instance(); 00034 00040 void update(const SctData::TestResult& t) const; 00041 00046 ConfigUpdater& getUpdater(const string& className) const; 00047 00055 bool setUpdater(const string& testName, shared_ptr<ConfigUpdater> updater); 00056 00057 private: 00058 ConfigUpdaterManager(); 00059 00060 typedef map<string, shared_ptr<ConfigUpdater> > ConfigUpdaterMap; 00061 ConfigUpdaterMap updaterMap; 00062 }; 00063 } 00064 00065 #endif //SCTCALIBRATIONCONTROLLER_CONFIGUPDATERMANAGER_H