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 () (){
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;
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) {
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 }