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 ScanLibrary; 00017 class TestLibrary; 00018 class SequenceLibrary; 00019 class TestSequence; 00020 class TestRequest; 00021 class SequenceRequest; 00022 00027 class CalibrationController : public IPCObject, public virtual Sct_CalibrationController_T_CalibrationController { 00028 public: 00029 Sct_CalibrationController_T_ScanLibrary * getScanLibrary (Sct_CalibrationControllerStatus *_status); 00030 Sct_CalibrationController_T_TestLibrary * getTestLibrary (Sct_CalibrationControllerStatus *_status); 00031 Sct_CalibrationController_T_SequenceLibrary * getSequenceLibrary (Sct_CalibrationControllerStatus *_status); 00032 void doScan (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_Scan * s); 00033 void doTest (Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_TestRequest *t); 00034 void doSequence (Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_SequenceRequest * r); 00035 void abort (Sct_CalibrationControllerStatus *_status); 00036 Sct_SctApi_T_Scan * getScan (Sct_CalibrationControllerStatus *_status, ilu_Cardinal runNumber, ilu_Cardinal scanNumber); 00037 void setUpdateOption(Sct_CalibrationControllerStatus *_status, Sct_CalibrationController_T_CalibrationController_UpdateOption); 00038 00039 static IPCServer& getServer(); 00040 00041 //New pure functions - the nice interface! 00042 00043 virtual ScanLibrary& getScanLibrary() const = 0; 00044 virtual TestLibrary& getTestLibrary() const = 0; 00045 virtual SequenceLibrary& getSequenceLibrary() const = 0; 00046 virtual void doScan (Sct_SctApi_T_Scan* s) = 0; 00047 virtual void doTest (shared_ptr<TestRequest> t) = 0; 00048 virtual void doSequence(shared_ptr<SequenceRequest> r) = 0; 00049 virtual void abort() = 0; 00050 virtual Sct_SctApi_T_Scan* getScan(unsigned long runNumber, unsigned long scanNumber) const = 0; 00051 virtual void setUpdateOption(Sct_CalibrationController_T_CalibrationController_UpdateOption opt) =0; 00052 00053 protected: 00054 CalibrationController(); 00055 virtual ~CalibrationController(); 00056 }; 00057 } 00058 } 00059 #endif //#ifndef CALIBRATIONCONTROLLER_H