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 #include <boost/thread.hpp>
00010 
00011 #include "SctFitter/FitStrategy.h"
00012 #include "AnalysisServiceInterface.hh"
00013 #include "AnalysisArguments.h"
00014 
00015 namespace SctAnalysis {
00016 class DcsInterface;
00017 class AnalysisWorkerGroup;
00018 
00019 class AnalysisService : 
00020   public IPCNamedObject<POA_AnalysisServiceI::AnalysisServiceInterface>,
00021   private boost::noncopyable 
00022   {
00023 private:
00024     void shutdown();
00025  public:
00026     virtual ~AnalysisService();
00030     void run();
00034     static void generalCallback(ISCallbackInfo* isc);
00038     static void testDataCallback(ISCallbackInfo * isc);
00042     static void scanResultCallback(ISCallbackInfo * isc);
00046     void setFitStrategy(const string& name) throw(LogicError);
00050     SctFitter::FitStrategy& getFitStrategy() const throw(LogicError);
00054     static AnalysisService& instance();
00055     
00060     static AnalysisService& initialize(AnalysisArguments args);
00065     virtual void purge() throw();
00070     virtual void analyze(const char* testname) throw();
00076     virtual void analyzeModule(const char* testname, 
00077                    const char* modulename) throw();
00081     virtual char* status() throw();
00085     virtual CORBA::Short busy ();
00089     virtual CORBA::Short queueLength ();
00093     DcsInterface& getDcsInterface();
00097     const std::string getOutputISServerName();
00101     void recover();
00102 
00103     static IPCServer& getServer() throw();
00104     
00105 protected:
00109     AnalysisWorkerGroup* workergroup;
00110     DcsInterface* dcsinterface;
00111 private:
00112     boost::recursive_mutex m_status_access ; 
00113     SctFitter::FitStrategy* fitStrategy; 
00114     std::auto_ptr<ISInfoReceiver> infoReceiver;     
00115     static AnalysisService* service;
00116     AnalysisService(AnalysisArguments args); 
00117     AnalysisArguments m_args;
00118 };
00119 }
00120 
00121 #endif //#ifndef ANALYSISSERVICE_H

Generated on Thu Feb 3 17:37:33 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5