00001 #ifndef TESTREQUEST_H
00002 #define TESTREQUEST_H
00003 
00004 #include "CalibrationController.hh"
00005 #include "ScanRequest.h"
00006 #include <ipc/object.h>
00007 #include <memory>
00008 #include <string>
00009 #include <vector>
00010 
00011 using std::vector;
00012 using std::auto_ptr;
00013 using std::string;
00014 
00015 namespace SctCalibrationController {
00016 namespace Ipc {
00017     
00018 class CalibrationController;
00019     
00024 class TestRequest {
00025 public:     
00026     virtual ~TestRequest() {}
00027     virtual void startTestRealImpl(Sct_SctApi::SctApiIPC_ptr api,
00028                string& name,
00029                unsigned short& testVariable,
00030                unsigned long& nScans,
00031                vector<double>& testPoints) = 0;
00032     virtual Sct_CalibrationController::ScanRequest_ptr getNextScanRealImpl(unsigned long index) = 0;
00033     virtual bool canFeedbackRealImpl() = 0;
00034     virtual void endTestRealImpl() = 0;    
00035     virtual void setAnalysisAlgorithm(const char* name) = 0;
00036     virtual char* getAnalysisAlgorithm() = 0;
00037     virtual void setFitAlgorithm(const char* name) = 0;
00038     virtual char* getFitAlgorithm() = 0;
00039 };
00040 
00041 
00042 
00046 class TestRequestImpl : 
00047   public IPCObject<POA_Sct_CalibrationController::TestRequest>,
00048   public TestRequest {
00049 protected:
00050   
00051   std::string m_fitAlgorithm; 
00052   std::string m_analysisAlgorithm; 
00053 public:    
00054   TestRequestImpl();
00055     virtual void startTest (
00056                 Sct_SctApi::SctApiIPC_ptr api,
00057                 CORBA::String_out name,
00058                 CORBA::UShort & testVariable,
00059                 CORBA::ULong & nScans,
00060                 Sct_CalibrationController::TestPoints_out testPointsData);
00061     virtual Sct_CalibrationController::ScanRequest_ptr getNextScan (CORBA::ULong index);    
00062     virtual CORBA::Boolean canFeedback ();
00063     virtual void endTest ();
00064     virtual void setAnalysisAlgorithm(const char* name);
00065     virtual char* getAnalysisAlgorithm();
00066     virtual void setFitAlgorithm(const char* name);
00067     virtual char* getFitAlgorithm();
00068 };
00069 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 }
00096 }
00097 #endif //TESTREQUEST_H