SequenceRequest.cpp

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 }

Generated on Mon Feb 6 14:01:29 2006 for SCT DAQ/DCS Software - C++ by  doxygen 1.4.6