TestRequest.h

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 //typedef TestRequest MinimalTestRequest;
00042 
00046 class TestRequestImpl : 
00047   public IPCObject<POA_Sct_CalibrationController::TestRequest>,
00048   public TestRequest {
00049 protected:
00050   //const boost::shared_ptr<MinimalTestRequest> m_minimalTestRequest;
00051   std::string m_fitAlgorithm; 
00052   std::string m_analysisAlgorithm; 
00053 public:    
00054   TestRequestImpl();
00055     virtual void startTest (/*CalibrationControllerStatus *_status, */
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 (/*Sct_CalibrationControllerStatus *_status, */CORBA::ULong index);    
00062     virtual CORBA::Boolean canFeedback (/*CalibrationControllerStatus *_status*/);
00063     virtual void endTest (/*CalibrationControllerStatus *_status*/);
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 class TestRequestAdapter : public virtual TestRequest {
00076 public:
00077     TestRequestAdapter(Sct_CalibrationController::TestRequest_ptr req);
00078     //
00079       //throws IpcException if any of the out variables are not set in the call
00080       //
00081     virtual void startTestRealImpl(Sct_SctApi::SctApiIPC_ptr api,
00082                string& name,
00083                unsigned short& testVariable,
00084                unsigned long& nScans,
00085                vector<double>& testPoints) ;
00086     virtual Sct_CalibrationController::ScanRequest_ptr getNextScanRealImpl(unsigned long index);
00087     virtual bool canFeedbackRealImpl();
00088     virtual void endTestRealImpl();
00089     
00090 private:
00091     Sct_CalibrationController::TestRequest_var request;
00092 };
00093 */
00094 
00095 }
00096 }
00097 #endif //TESTREQUEST_H

Generated on Mon Feb 6 14:01:34 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6