AnalysisAlgorithmMap.h

00001 #ifndef ANALYSISALGORITHMMAP_H
00002 #define ANALYSISALGORITHMMAP_H
00003 
00004 #include <string>
00005 #include <map>
00006 #include <boost/utility.hpp>
00007 #include <boost/shared_ptr.hpp>
00008 #include "Sct/LogicErrors.h"
00009 
00010 using std::string;
00011 using std::map;
00012 using std::auto_ptr;
00013 using boost::shared_ptr;
00014 
00015 class TestData;
00016 
00017 namespace SctAnalysis {
00018     
00019 class AnalysisAlgorithm;
00020     
00027 class AnalysisAlgorithmMap : boost::noncopyable {
00028 public:    
00032     static AnalysisAlgorithmMap& instance();
00033     
00039     shared_ptr<AnalysisAlgorithm> getAlgorithm(shared_ptr<const TestData> testData, const string& moduleName) const throw(Sct::InvalidArgument);
00040     
00048     bool setAlgorithm(const string testName, auto_ptr<AnalysisAlgorithm> alg) throw();
00049     
00054     string getStatus(string testName);
00055     
00060     string getAllStatus();
00061       
00065     std::list<std::string> listAlgorithms();    
00066 private:
00067     //Private constructor
00068     AnalysisAlgorithmMap() {}
00070     map<string, shared_ptr<AnalysisAlgorithm> > algMap;
00071 };
00072 
00073 }
00074 
00075 #endif //#ifndef ANALYSISALGORITHMMAP_H

Generated on Mon Feb 6 14:01:16 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6