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