00001 #ifndef SEQUENCEREQUEST_H 00002 #define SEQUENCEREQUEST_H 00003 00004 #include "Sct_CalibrationController.hh" 00005 #include <ipc/object.h> 00006 #include <memory> 00007 #include <string> 00008 00009 using std::string; 00010 using std::auto_ptr; 00011 00012 namespace SctCalibrationController { 00013 namespace Ipc { 00014 00015 class CalibrationController; 00016 class TestRequest; 00017 00022 class SequenceRequest { 00023 public: 00024 virtual ~SequenceRequest() {} 00025 virtual string startSequence(Sct_SctApi_T_SctApi& api) = 0; 00026 virtual TestRequest* getNextTest(unsigned long index) = 0; 00027 virtual void endSequence() = 0; 00028 }; 00029 00033 class SequenceRequestImpl : public IPCCallback, public virtual Sct_CalibrationController_T_SequenceRequest, public virtual SequenceRequest{ 00034 public: 00035 SequenceRequestImpl(); 00036 virtual ilu_T_CString startSequence (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_SctApi * api); 00037 virtual class Sct_CalibrationController_T_TestRequest * getNextTest (Sct_CalibrationControllerStatus *_status, ilu_Cardinal index); 00038 virtual void endSequence (Sct_CalibrationControllerStatus *_status); 00039 }; 00040 00045 class SequenceRequestAdapter : public virtual SequenceRequest { 00046 public: 00047 SequenceRequestAdapter(Sct_CalibrationController_T_SequenceRequest* req); 00048 00049 virtual string startSequence(Sct_SctApi_T_SctApi& api); 00050 virtual TestRequest* getNextTest(unsigned long index); 00051 virtual void endSequence(); 00052 00053 private: 00054 Sct_CalibrationController_T_SequenceRequest* request; 00055 }; 00056 00057 } 00058 } 00059 #endif //SEQUENCEREQUEST_H