00001 #ifndef IPC_CALIBRATIONCONTROLLER_H
00002 #define IPC_CALIBRATIONCONTROLLER_H
00003
00004 #include "Sct_CalibrationController.hh"
00005 #include <ipc/object.h>
00006 #include <memory>
00007 #include <vector>
00008 #include <boost/shared_ptr.hpp>
00009
00010 using namespace std;
00011 using boost::shared_ptr;
00012
00013 namespace SctCalibrationController {
00014 namespace Ipc {
00015
00016 class ScanRequest;
00017 class ScanLibrary;
00018 class TestLibrary;
00019 class SequenceLibrary;
00020 class TestSequence;
00021 class TestRequest;
00022 class SequenceRequest;
00023
00028 class CalibrationController : public IPCObject, public virtual Sct_CalibrationController_T_CalibrationController {
00029 public:
00030 Sct_CalibrationController_T_ScanLibrary * getScanLibrary (Sct_CalibrationControllerStatus *_status);
00031 Sct_CalibrationController_T_TestLibrary * getTestLibrary (Sct_CalibrationControllerStatus *_status);
00032 Sct_CalibrationController_T_SequenceLibrary * getSequenceLibrary (Sct_CalibrationControllerStatus *_status);
00033 void doScan (Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_ScanRequest* s);
00034 void doTest (Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_TestRequest *t);
00035 void doSequence (Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_SequenceRequest * r);
00036 void abort (Sct_CalibrationControllerStatus *_status);
00037 Sct_SctApi_T_Scan * getScan (Sct_CalibrationControllerStatus *_status, ilu_Cardinal runNumber, ilu_Cardinal scanNumber);
00038 void setUpdateOption(Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_CalibrationController_UpdateOption);
00039
00040 virtual void updateWith (Sct_CalibrationControllerStatus *_status, ilu_T_CString testResultInIs);
00041
00042 static IPCServer& getServer();
00043
00044
00045
00046 virtual ScanLibrary& getScanLibrary() const = 0;
00047 virtual TestLibrary& getTestLibrary() const = 0;
00048 virtual SequenceLibrary& getSequenceLibrary() const = 0;
00049 virtual void doScan (shared_ptr<ScanRequest> s) = 0;
00050 virtual void doTest (shared_ptr<TestRequest> t) = 0;
00051 virtual void doSequence(shared_ptr<SequenceRequest> r) = 0;
00052 virtual void abort() = 0;
00053 virtual Sct_SctApi_T_Scan* getScan(unsigned long runNumber, unsigned long scanNumber) const = 0;
00054 virtual void setUpdateOption(Sct_CalibrationController_T_CalibrationController_UpdateOption opt) =0;
00055 virtual void updateWith (ilu_T_CString testResultInIs)=0;
00056 protected:
00057 CalibrationController();
00058 virtual ~CalibrationController();
00059 };
00060 }
00061 }
00062 #endif //#ifndef CALIBRATIONCONTROLLER_H