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