00001 #include "RequestException.h" 00002 #include "SequenceRequest.h" 00003 #include "CalibrationController.h" 00004 #include "TestRequest.h" 00005 #include "Sct/BugReport.h" 00006 00007 namespace SctCalibrationController { 00008 namespace Ipc { 00009 00010 SequenceRequestImpl::SequenceRequestImpl() : IPCObject<POA_Sct_CalibrationController::SequenceRequest>() { 00011 } 00012 00013 char * SequenceRequestImpl::startSequence (/*Sct_CalibrationControllerStatus *_status, */Sct_SctApi::SctApiIPC_ptr api) { 00014 Sct::BugReport("BUG01", "SequenceRequest.cpp","IS IT THIS ONE?-A startSequence -- DONT USE ME!!!"); 00015 cout << "SequenceRequestImpl::startSequenece" << endl; 00016 char* str = CORBA::string_dup("WorryIfYouCanSeeThisDefaultImplementationString!"); // because all the classes that implement inherit from this method should return something else. The only reason this method is not abstract is so that the scripting service can use it. 00017 return str; 00018 } 00019 00020 Sct_CalibrationController::TestRequest_ptr SequenceRequestImpl::getNextTest (/*Sct_CalibrationControllerStatus *_status, */CORBA::ULong index) { 00021 Sct::BugReport("BUG01","SequenceRequest.cpp","getNextTest -- DONT USE ME EITHER!"); 00022 // The only reason this default implementation is here is so that scripting methods will work. Ideall, this should be abstract!!! DOn't use it directly! 00023 return Sct_CalibrationController::TestRequest::_nil(); 00024 } 00025 00026 void SequenceRequestImpl::endSequence (/*Sct_CalibrationControllerStatus *_status*/) { 00027 } 00028 00029 00030 /* 00031 SequenceRequestAdapter::SequenceRequestAdapter(Sct_CalibrationController::SequenceRequest_ptr req) : 00032 request(Sct_CalibrationController::SequenceRequest::_duplicate(req)) { 00033 } 00034 00035 string SequenceRequestAdapter::startSequence(Sct_SctApi::SctApiIPC_ptr api) { 00036 Sct::BugReport("BUG01","SequenceRequest.cpp","IS IS THIS ONE?-B This is a default implementation ... and we don'w want to call it always."); 00037 cout << "SequenceRequestAdapter::startSequence "<<endl; 00038 //Sct_CalibrationControllerStatus status; 00039 char* str = 0; 00040 try { 00041 str = request->startSequence(//&status, 00042 api); 00043 } catch (CORBA::Exception & status) { 00044 throw RequestException(status, "SequenceRequestAdapter::startSequence failed", __FILE__, __LINE__); 00045 }; 00046 string st = str; 00047 delete [] str; 00048 return st; 00049 } 00050 00051 TestRequest* SequenceRequestAdapter::getNextTest(unsigned long index) { 00052 //Sct_CalibrationControllerStatus status; 00053 Sct_CalibrationController::TestRequest_ptr tr; 00054 try { 00055 tr = request->getNextTest(//&status, 00056 index); 00057 } catch (const CORBA::Exception & status) { 00058 throw RequestException(status, "SequenceRequestAdapter::getNextTest failed", __FILE__, __LINE__); 00059 }; 00060 if (CORBA::is_nil(tr)) return 0; 00061 //TestRequest* ptr = dynamic_cast<TestRequest*>(tr); 00062 //if (ptr != 0) return ptr; 00063 //else 00064 return new TestRequestAdapter(tr); 00065 } 00066 00067 void SequenceRequestAdapter::endSequence() { 00068 //Sct_CalibrationControllerStatus status; 00069 try { 00070 request->endSequence(//&status 00071 ); 00072 }catch (const CORBA::Exception & status) { 00073 throw RequestException(status, "SequenceRequestAdapter::endSequence failed", __FILE__, __LINE__); 00074 } 00075 }; 00076 00077 */ 00078 } 00079 }