Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Related Pages

TestRequest.cpp

00001 #include "TestRequest.h"
00002 #include "CalibrationController.h"
00003 #include "RequestException.h"
00004 
00005 namespace SctCalibrationController {
00006 namespace Ipc {
00007     
00008 TestRequestImpl::TestRequestImpl() : IPCCallback(&CalibrationController::getServer()) {
00009 }
00010 
00011 void TestRequestImpl::startTest (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_SctApi * api, ilu_T_CString * name, ilu_ShortCardinal * testVariable, ilu_Cardinal * nScans, Sct_CalibrationController_T_TestPoints testPointsData){
00012 }
00013 
00014 Sct_CalibrationController_T_ScanRequest* TestRequestImpl::getNextScan (Sct_CalibrationControllerStatus *_status, ilu_Cardinal index){
00015     return 0;
00016 }
00017 
00018 ilu_Boolean TestRequestImpl::canFeedback (Sct_CalibrationControllerStatus *_status) {
00019     return false;
00020 }
00021 
00022 void TestRequestImpl::endTest (Sct_CalibrationControllerStatus *_status) {
00023 }
00024 
00025 
00026 TestRequestAdapter::TestRequestAdapter(Sct_CalibrationController_T_TestRequest* req) : request(req) {
00027 }
00028 
00029 
00030 void TestRequestAdapter::startTest(Sct_SctApi_T_SctApi& api, string& name, unsigned short& testVariable, 
00031                    unsigned long& nScans, vector<double>& testPoints) {
00032     Sct_CalibrationControllerStatus status;
00033     char* text = 0;
00034     _Sct_CalibrationController_T_TestPoints_sequence data;
00035     request->startTest(&status, &api, &text, &testVariable, &nScans, &data);
00036     if (status.returnCode != 0) 
00037     throw RequestException(status.returnCode, "TestRequestAdapter::startTest failed", __FILE__, __LINE__);
00038     name = text;
00039     for (unsigned int i = 0; i<data.Length(); ++i) {
00040     testPoints.push_back(data.Nth(i));
00041     }
00042     delete [] text;
00043 }
00044 
00045 ScanRequest* TestRequestAdapter::getNextScan(unsigned long index) {
00046     Sct_CalibrationControllerStatus status;
00047     Sct_CalibrationController_T_ScanRequest* scan = request->getNextScan(&status, index);
00048     if (status.returnCode != 0) 
00049       throw RequestException(status.returnCode, "TestRequestAdapter::getNextScan failed", __FILE__, __LINE__);    
00050     if (scan==0) return 0;
00051     ScanRequest* ptr=dynamic_cast<ScanRequest*>(scan);
00052     if (ptr!=0) return ptr;
00053     else return new ScanRequestAdapter(scan);
00054 }
00055 
00056 bool TestRequestAdapter::canFeedback() {
00057     Sct_CalibrationControllerStatus status;   
00058     bool can = request->canFeedback(&status);
00059     if (status.returnCode != 0) 
00060     throw RequestException(status.returnCode, "TestRequestAdapter::canFeedback failed", __FILE__, __LINE__);    
00061     return can;
00062 }
00063 
00064 void TestRequestAdapter::endTest() {
00065     Sct_CalibrationControllerStatus status;
00066     request->endTest(&status);    
00067     if (status.returnCode != 0) 
00068     throw RequestException(status.returnCode, "TestRequestAdapter::endTest failed", __FILE__, __LINE__);    
00069 }
00070 
00071     
00072 }
00073 }

Generated on Thu Jul 15 09:51:00 2004 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5