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