SequenceRequestWorker.cpp

00001 #include "SequenceRequestWorker.h"
00002 #include "Sct/Exception.h"
00003 #include "Sct/CorbaExceptionWrapper.h"
00004 #include "Sct/StdExceptionWrapper.h"
00005 #include "Sct/BugReport.h"
00006 
00007 using std::cout;
00008 using std::endl;
00009 
00010 namespace SctCalibrationController {
00011 
00012     void SequenceRequestWorker::operator () (){  // does not throw
00013     Sct::Throwable* mrs = 0;
00014     try {
00015         cout << "In SequenceRequestWorker operator () 1" << endl;
00016         Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 1/4");
00017         m_cc.executeSequence(m_sr);
00018         Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 2/4");
00019         m_cc.status.status = m_cc.status.INCONTROL;  // was originally set to BUSY by CalibrationControllerImpl.
00020         Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 3/4");
00021         m_cc.updateStatus();
00022         Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 4/4");
00023         cout << "End of SequenceRequestWorker operator() 4" << endl;
00024     } catch(Sct::Throwable &e) {
00025         e.sendToMrs(MRS_ERROR);
00026     } catch(std::exception &e) {
00027         mrs = new Sct::StdExceptionWrapper(e);
00028     } catch(std::string &s) {          // Just in case  
00029         std::ostringstream os;
00030         os<<"uncaught string expection "<<s;
00031         mrs = new Sct::Error(os.str(), __FILE__, __LINE__);
00032     } catch(CORBA::Exception& e){
00033             Sct::CorbaExceptionWrapper(e, "error in SequenceRequestWorker thread", __FILE__, __LINE__).sendToMrs(MRS_ERROR);
00034     } catch(...) {
00035         mrs = new Sct::Error("uncaught unknown exception", __FILE__, __LINE__);
00036     }
00037     if (mrs) {
00038         mrs->sendToMrs(MRS_ERROR);
00039     }
00040     }
00041 }

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