Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

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 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 }

Generated on Fri Dec 16 19:38:20 2005 for SCT DAQ/DCS Software - C++ by doxygen 1.3.5