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