00001 #ifndef SCTCALIBRATIONCONTROLLER_SCANREQUEST_H
00002 #define SCTCALIBRATIONCONTROLLER_SCANREQUEST_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 ScanRequest {
00024 public:
00025 virtual ilu_Boolean isRaw()=0;
00026 virtual ilu_Boolean configureModules()=0;
00027 virtual long delay()=0;
00028 virtual void setScan(Sct_SctApi_T_Scan* s)=0;
00029 virtual ilu_Boolean clockByTwo()=0;
00030 virtual void setClockByTwo(ilu_Boolean value)=0;
00031 virtual long width()=0;
00032 virtual void setWidth(long value)=0;
00033 virtual Sct_SctApi_T_Scan* getScan()=0;
00034 };
00035
00039 class ScanRequestImpl : public IPCCallback, public virtual Sct_CalibrationController_T_ScanRequest, public virtual ScanRequest {
00040 public:
00041 ScanRequestImpl();
00042 virtual ilu_Boolean isRaw(Sct_CalibrationControllerStatus *_status);
00043 virtual ilu_Boolean configureModules(Sct_CalibrationControllerStatus *_status);
00044 virtual ilu_Boolean clockByTwo(Sct_CalibrationControllerStatus *_status);
00045 virtual long delay(Sct_CalibrationControllerStatus *_status);
00046 virtual Sct_SctApi_T_Scan* getScan (Sct_CalibrationControllerStatus *_status);
00047 virtual void setScan (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_Scan* scan);
00048 virtual void setClockByTwo (Sct_CalibrationControllerStatus *_status, ilu_Boolean value);
00049 virtual long width(Sct_CalibrationControllerStatus *_status);
00050 virtual void setWidth(Sct_CalibrationControllerStatus *_status, long width);
00051
00052 virtual ilu_Boolean isRaw();
00053 virtual ilu_Boolean configureModules();
00054 virtual ilu_Boolean clockByTwo();
00055 virtual void setClockByTwo(ilu_Boolean value);
00056 virtual long width();
00057 virtual void setWidth(long width);
00058 virtual long delay();
00059 virtual void setScan(Sct_SctApi_T_Scan* s);
00060 virtual Sct_SctApi_T_Scan* getScan ();
00061 protected:
00062 bool m_clockByTwo;
00063 long m_width;
00064 Sct_SctApi_T_Scan* m_scan;
00065 };
00066
00071 class ScanRequestAdapter : public virtual ScanRequest {
00072 public:
00073 ScanRequestAdapter(Sct_CalibrationController_T_ScanRequest* req);
00074 virtual ilu_Boolean isRaw();
00075 virtual ilu_Boolean configureModules();
00076 virtual ilu_Boolean clockByTwo();
00077 virtual long delay();
00078 virtual void setScan(Sct_SctApi_T_Scan* s);
00079 virtual Sct_SctApi_T_Scan* getScan();
00080 virtual void setClockByTwo(ilu_Boolean value);
00081 virtual long width();
00082 virtual void setWidth(long width);
00083 private:
00084 Sct_CalibrationController_T_ScanRequest* request;
00085 };
00086
00087 }
00088 }
00089 #endif //SCTCALIBRATIONCONTROLLER_SCANREQUEST_H