00001 #ifndef FITTERWORKERGROUP_H
00002 #define FITTERWORKERGROUP_H
00003 #include "SctService/WorkerGroup.h"
00004 #include <string>
00005 #include <list>
00006 #include <iostream>
00007 #include <boost/shared_ptr.hpp>
00008 #include <boost/thread.hpp>
00009
00010 using std::string;
00011 using boost::shared_ptr;
00012 using namespace SctService;
00013 class TestData;
00014
00015 namespace SctFitter {
00016
00021 class FitterWorkerGroup : public WorkerGroup<string> {
00022 public:
00024 FitterWorkerGroup();
00025
00027 virtual ~FitterWorkerGroup();
00028
00030 void printTests(std::ostream& os) const;
00032 void setDebug(bool value);
00034 bool debug() const;
00035 private:
00041 virtual void work(string name) throw() ;
00042
00044 volatile int m_calls;
00045
00046
00047 virtual shared_ptr<const TestData>& findTestData(unsigned long run, unsigned long scan);
00048
00049
00050 virtual void addTestData(boost::shared_ptr<const TestData> td);
00051
00052
00054 std::list<boost::shared_ptr<const TestData> > m_tests;
00055
00056
00057 mutable boost::recursive_mutex m_testAccess;
00058
00059 bool m_debug;
00060 };
00061
00062 }
00063
00064 #endif // #define FITTERWORKERGROUP_H