00001 #ifndef SCTDATA_ISSUMMARYMANAGER_H
00002 #define SCTDATA_ISSUMMARYMANAGER_H
00003 #include <boost/utility.hpp>
00004 #include <map>
00005 #include <string>
00006 #include <boost/shared_ptr.hpp>
00007
00008 using std::map;
00009
00010 namespace SctData {
00011 class TestResult;
00026 namespace ISTestSummary{
00027 class ISSummaryWriter;
00033 class ISSummaryManager : boost::noncopyable {
00034 public:
00036 static ISSummaryManager& instance();
00037
00042 void write(const TestResult& t) ;
00043
00049 bool addWriter(const std::string& testname, boost::shared_ptr<ISSummaryWriter> writer);
00054 boost::shared_ptr<const ISSummaryWriter> getWriter(const std::string& classname) const;
00055 private:
00056 ~ISSummaryManager();
00057 ISSummaryManager();
00058
00059 typedef map<std::string, boost::shared_ptr<const ISSummaryWriter> > WriterMap;
00063 WriterMap theMap;
00064 };
00065 }
00066 }
00067
00068 #endif // #ifndef SCTDATA_ISSUMMARYMANAGER