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 }