00001 #ifndef SCTCALIBRATIONRUNCONTROLLER_H
00002 #define SCTCALIBRATIONRUNCONTROLLER_H
00003 
00004 #ifdef linux
00005 #undef linux
00006 #endif
00007 
00008 #include <rc/rc_interface.h>
00009 #include <boost/utility.hpp>
00010 #include <string>
00011 
00012 using std::string;
00013 
00014 class Sct_SctApi_T_SctApi;
00015 
00016 namespace SctCalibrationController {
00017 
00018 class CalibrationControllerImpl;
00019 
00020 class RunControl : public rc_interface, boost::noncopyable {
00021 public:
00022     enum ErrorState {
00023         SCTAPI_ACCESS_FAILURE
00024     };
00025 
00026     static RunControl& instance();
00027 
00028     
00029     
00030     
00031     
00032     virtual int resetaction ();
00033 
00034     
00035     
00036     
00041     virtual int loadaction ();
00042     
00043 
00044     
00045     
00046     
00047     
00048 
00049     
00050     
00051     virtual void exitRunning();
00052     
00053 
00054     
00055     
00056     
00057     
00058     
00059 
00060     
00061     
00062     
00063     
00064     virtual int startaction ();
00065 
00066     
00067     
00068     
00069     virtual int unloadaction ();
00070     virtual int configaction ();
00071 
00075     void sctApiError(ErrorState state, const string& reason);
00076 
00077 private:
00078     RunControl();
00079     CalibrationControllerImpl& cc;
00080     Sct_SctApi_T_SctApi* api;
00081 
00082 };
00083 
00084 }
00085 
00086 #endif //SCTCALIBRATIONRUNCONTROLLER_H