00001 #ifndef TESTREQUEST_H 00002 #define TESTREQUEST_H 00003 00004 #include "Sct_CalibrationController.hh" 00005 #include "ScanRequest.h" 00006 #include <ipc/object.h> 00007 #include <memory> 00008 #include <string> 00009 #include <vector> 00010 00011 using std::vector; 00012 using std::auto_ptr; 00013 using std::string; 00014 00015 namespace SctCalibrationController { 00016 namespace Ipc { 00017 00018 class CalibrationController; 00019 00024 class TestRequest { 00025 public: 00026 virtual ~TestRequest() {} 00027 virtual void startTest(Sct_SctApi_T_SctApi& api, string& name, unsigned short& testVariable, unsigned long& nScans, vector<double>& testPoints) = 0; 00028 virtual ScanRequest* getNextScan(unsigned long index) = 0; 00029 virtual bool canFeedback() = 0; 00030 virtual void endTest() = 0; 00031 }; 00032 00036 class TestRequestImpl : public IPCCallback, public virtual Sct_CalibrationController_T_TestRequest, public virtual TestRequest { 00037 public: 00038 TestRequestImpl(); 00039 virtual void startTest (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_SctApi * api, ilu_T_CString * name, ilu_ShortCardinal * testVariable, ilu_Cardinal * nScans, Sct_CalibrationController_T_TestPoints testPointsData); 00040 virtual Sct_CalibrationController_T_ScanRequest* getNextScan (Sct_CalibrationControllerStatus *_status, ilu_Cardinal index); 00041 virtual ilu_Boolean canFeedback (Sct_CalibrationControllerStatus *_status); 00042 virtual void endTest (Sct_CalibrationControllerStatus *_status); 00043 }; 00044 00049 class TestRequestAdapter : public virtual TestRequest { 00050 public: 00051 TestRequestAdapter(Sct_CalibrationController_T_TestRequest* req); 00055 virtual void startTest(Sct_SctApi_T_SctApi& api, string& name, unsigned short& testVariable, unsigned long& nScans, vector<double>& testPoints) ; 00056 virtual ScanRequest* getNextScan(unsigned long index); 00057 virtual bool canFeedback(); 00058 virtual void endTest(); 00059 00060 private: 00061 Sct_CalibrationController_T_TestRequest* request; 00062 }; 00063 00064 } 00065 } 00066 #endif //TESTREQUEST_H