TestRequest.cpp

00001 #include "TestRequest.h"
00002 #include "CalibrationController.h"
00003 #include "RequestException.h"
00004 #include "Sct/OmniMarshalling.h"
00005 #include "Sct/SequenceUtils.h"
00006 #include "Sct/BugReport.h"
00007 
00008 namespace SctCalibrationController {
00009 namespace Ipc {
00010     
00011 TestRequestImpl::TestRequestImpl() : IPCObject<POA_Sct_CalibrationController::TestRequest>() {
00012      Sct::BugReport("BUG01", "TestRequest.cpp","ImplConstructor 1");
00013 }
00014 
00015   void TestRequestImpl::startTest (/*Sct_CalibrationControllerStatus *_status, */
00016                    Sct_SctApi::SctApiIPC_ptr api, //in
00017                    CORBA::String_out name, //out
00018                    CORBA::UShort & testVariable, //out
00019                    CORBA::ULong & nScans, //out
00020                    Sct_CalibrationController::TestPoints_out testPointsData //out
00021                                    ){
00022      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 2");
00023      
00024      std::string nameOut;
00025      unsigned short testVariableOut;
00026      unsigned long nScansOut;
00027      vector<double> testPointsOut;
00028 
00029      startTestRealImpl(api, nameOut, testVariableOut, nScansOut, testPointsOut);
00030      
00031      name = ::Sct::copyStringToCorba(nameOut);
00032      testVariable = testVariableOut;
00033      nScans = nScansOut;
00034      testPointsData = ::Sct::SequenceUtils::newSafeSequence<Sct_CalibrationController::TestPoints>(testPointsOut.size());
00035      for (unsigned int i=0; i<testPointsOut.size(); ++i) {
00036        testPointsData[i]=testPointsOut[i];
00037      };
00038      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 2.5");
00039 }
00040 
00041   Sct_CalibrationController::ScanRequest_ptr TestRequestImpl::getNextScan (/*Sct_CalibrationControllerStatus *_status, */CORBA::ULong index){
00042      Sct::BugReport("BUG01", "TestRequest.cpp","getNextScan 3");
00043      Sct_CalibrationController::ScanRequest_ptr ans = getNextScanRealImpl(index);
00044      Sct::BugReport("BUG01", "TestRequest.cpp","getNextScan 4");
00045      return ans;
00046 }
00047 
00048   CORBA::Boolean TestRequestImpl::canFeedback (/*Sct_CalibrationControllerStatus *_status*/) {
00049      Sct::BugReport("BUG01", "TestRequest.cpp","canFeedback 4");
00050     return canFeedbackRealImpl();
00051 }
00052 
00053 void TestRequestImpl::setAnalysisAlgorithm(const char* name){
00054   m_analysisAlgorithm=name;
00055 }
00056 
00057 char* TestRequestImpl::getAnalysisAlgorithm(){
00058   return ::Sct::copyStringToCorba(m_analysisAlgorithm);
00059 }
00060 
00061 void TestRequestImpl::setFitAlgorithm(const char* name){
00062   m_fitAlgorithm=name;
00063 }
00064 
00065 char* TestRequestImpl::getFitAlgorithm(){
00066   return ::Sct::copyStringToCorba(m_fitAlgorithm);
00067 }
00068 
00069 
00070   void TestRequestImpl::endTest (/*Sct_CalibrationControllerStatus *_status*/) {
00071      Sct::BugReport("BUG01", "TestRequest.cpp","endTest 5");
00072      endTestRealImpl();
00073      Sct::BugReport("BUG01", "TestRequest.cpp","endTest 5.5");
00074 }
00075 
00076 
00077   /*
00078   TestRequestAdapter::TestRequestAdapter(Sct_CalibrationController::TestRequest_ptr req) : 
00079     request(Sct_CalibrationController::TestRequest::_duplicate(req)) {
00080      Sct::BugReport("BUG01", "TestRequest.cpp","AdapterConstructor 6");
00081 }
00082 
00083 
00084 void TestRequestAdapter::startTest(Sct_SctApi::SctApiIPC_ptr api,
00085                    std::string& name,
00086                    unsigned short & testVariable, 
00087                    unsigned long & nScans,
00088                    vector<double>& testPoints) {
00089   //Sct_CalibrationControllerStatus status;
00090   Sct::BugReport("BUG01", "TestRequest.cpp","startTest 7");
00091   CORBA::String_var text;
00092   Sct::BugReport("BUG01", "TestRequest.cpp","startTest 7.4");
00093   //This line was just a test name = text; // delete this one!
00094   Sct::BugReport("BUG01", "TestRequest.cpp","startTest 7.6");
00095     Sct_CalibrationController::TestPoints_var data;
00096         Sct::BugReport("BUG01", "TestRequest.cpp","startTest 8");
00097  
00098     try {
00099      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 9");
00100       request->startTest(//&status, 
00101              api, text, testVariable, nScans, data);
00102      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 10");
00103     } catch (CORBA::Exception & status) {
00104      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 11");
00105     throw RequestException(status, "TestRequestAdapter::startTest failed", __FILE__, __LINE__);
00106     };
00107      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 12");
00108     name = text;
00109      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 13");
00110     for (unsigned int i = 0; i<data->length(); ++i) {
00111      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 14");
00112       testPoints.push_back(data[i]);
00113     }
00114      Sct::BugReport("BUG01", "TestRequest.cpp","startTest 15");
00115 }
00116   
00117   Sct_CalibrationController::ScanRequest_ptr TestRequestAdapter::getNextScan(unsigned long index) {
00118      Sct::BugReport("BUG01", "TestRequest.cpp","getNextScan 16");
00119     Sct_CalibrationController::ScanRequest_ptr scan;
00120     try {
00121 scan = request->getNextScan(//&status,
00122 index);
00123     } catch (const CORBA::Exception & status) {
00124       throw RequestException(status, "TestRequestAdapter::getNextScan failed", __FILE__, __LINE__);    
00125     };
00126     if (CORBA::is_nil(scan)) {
00127      Sct::BugReport("BUG01", "TestRequest.cpp","getNextScan 17");
00128       return Sct_CalibrationController::ScanRequest::_nil();
00129     };
00130     
00131     //ScanRequest* ptr=dynamic_cast<ScanRequest*>(scan);
00132     //if (ptr!=0) return ptr;
00133     //else
00134     //ScanRequestAdapter * newAdapter = new ScanRequestAdapter(scan);
00135     //#warning DONT FORGET TO MAKE ScanRequestAdapter INHERIT FROM
00136      Sct::BugReport("BUG01", "TestRequest.cpp","getNextScan 18");
00137     return scan;
00138   }
00139   
00140   bool TestRequestAdapter::canFeedback() {
00141      Sct::BugReport("BUG01", "TestRequest.cpp","canFeedback 19");
00142     try {
00143       return request->canFeedback();
00144     } catch (const CORBA::Exception & status) {
00145       throw RequestException(status, "TestRequestAdapter::canFeedback failed", __FILE__, __LINE__);    
00146     };
00147   }
00148   
00149   void TestRequestAdapter::endTest() {
00150      Sct::BugReport("BUG01", "TestRequest.cpp","endTest 20");
00151     try {
00152       request->endTest();    
00153     } catch (const CORBA::Exception & status) {
00154       throw RequestException(status, "TestRequestAdapter::endTest failed", __FILE__, __LINE__);    
00155     };
00156   }
00157 */  
00158   
00159 }
00160 }

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