Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

AnalysisService.h

00001 #ifndef ANALYSISSERVICE_H
00002 #define ANALYSISSERVICE_H
00003 #include <is/isinfo.h>
00004 #include <ipc/object.h>
00005 #include <ipc/server.h>
00006 
00007 #include <string>
00008 #include <boost/utility.hpp>
00009 
00010 #include "SctFitter/FitStrategy.h"
00011 #include "AnalysisWorkerGroup.h"
00012 #include "AnalysisServiceI.hh"
00013 
00014 
00015 namespace SctAnalysis {
00016 
00017 class AnalysisService : public IPCObject, public virtual AnalysisServiceI_T_AnalysisServiceInterface, boost::noncopyable {
00018 public:
00019     virtual ~AnalysisService() {}
00021     void run();
00023     static void testDataCallback(ISCallbackInfo * isc);
00025     static void scanResultCallback(ISCallbackInfo * isc);
00027     void setFitStrategy(const string& name) throw(LogicError);
00029     SctFitter::FitStrategy& getFitStrategy() const throw(LogicError);
00031     static AnalysisService& instance();
00032     
00037     static AnalysisService& initialize(const string& fitStrategyName = "RootFitStrategy");
00038     
00043     virtual void purge(AnalysisServiceIStatus* status) throw();
00048     virtual void analyze(AnalysisServiceIStatus* status, char* testname) throw();
00054     virtual void analyzeModule(AnalysisServiceIStatus* status, char* testname, 
00055                     char* modulename) throw();
00059     virtual char* status(AnalysisServiceIStatus* status) throw();
00061     virtual ilu_ShortInteger busy (AnalysisServiceIStatus *_status);
00063     virtual ilu_ShortInteger queueLength (AnalysisServiceIStatus *_status);
00064 
00065     static IPCServer& getServer() throw();
00066     
00067 protected:
00069     AnalysisWorkerGroup* workergroup;
00070 private:
00071     boost::recursive_mutex m_status_access ; 
00072     SctFitter::FitStrategy* fitStrategy; 
00073     std::auto_ptr<ISInfoReceiver> infoReceiver;     
00074     static AnalysisService* service;
00075     AnalysisService(const string& fitStrategyName ); 
00076 };
00077 }
00078 
00079 #endif //#ifndef ANALYSISSERVICE_H

Generated on Thu Jul 15 09:50:42 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5