00001 #include "RequestException.h" 00002 #include "SequenceRequest.h" 00003 #include "CalibrationController.h" 00004 #include "TestRequest.h" 00005 00006 namespace SctCalibrationController { 00007 namespace Ipc { 00008 00009 SequenceRequestImpl::SequenceRequestImpl() : IPCCallback(&CalibrationController::getServer()) { 00010 } 00011 00012 ilu_T_CString SequenceRequestImpl::startSequence (Sct_CalibrationControllerStatus *_status, Sct_SctApi_T_SctApi * api) { 00013 cout << "SequenceRequestImpl::startSequenece" << endl; 00014 char* str = new char[0]; 00015 return str; 00016 } 00017 00018 Sct_CalibrationController_T_TestRequest * SequenceRequestImpl::getNextTest (Sct_CalibrationControllerStatus *_status, ilu_Cardinal index) { 00019 return 0; 00020 } 00021 00022 void SequenceRequestImpl::endSequence (Sct_CalibrationControllerStatus *_status) { 00023 } 00024 00025 SequenceRequestAdapter::SequenceRequestAdapter(Sct_CalibrationController_T_SequenceRequest* req) : request(req) { 00026 } 00027 00028 string SequenceRequestAdapter::startSequence(Sct_SctApi_T_SctApi& api) { 00029 cout << "SequenceRequestAdapter::startSequence "<<endl; 00030 Sct_CalibrationControllerStatus status; 00031 char* str = 0; 00032 str = request->startSequence(&status, &api); 00033 if (status.returnCode != 0) 00034 throw RequestException(status.returnCode, "SequenceRequestAdapter::startSequence failed", __FILE__, __LINE__); 00035 00036 string st = str; 00037 delete [] str; 00038 return st; 00039 } 00040 00041 TestRequest* SequenceRequestAdapter::getNextTest(unsigned long index) { 00042 Sct_CalibrationControllerStatus status; 00043 Sct_CalibrationController_T_TestRequest* tr = request->getNextTest(&status, index); 00044 00045 if (status.returnCode != 0) 00046 throw RequestException(status.returnCode, "SequenceRequestAdapter::getNextTest failed", __FILE__, __LINE__); 00047 00048 if (tr == 0) return 0; 00049 TestRequest* ptr = dynamic_cast<TestRequest*>(tr); 00050 if (ptr != 0) return ptr; 00051 else return new TestRequestAdapter(tr); 00052 } 00053 00054 void SequenceRequestAdapter::endSequence() { 00055 Sct_CalibrationControllerStatus status; 00056 request->endSequence(&status); 00057 if (status.returnCode != 0) 00058 throw RequestException(status.returnCode, "SequenceRequestAdapter::endSequence failed", __FILE__, __LINE__); 00059 } 00060 00061 00062 } 00063 }