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 namespace SctCalibrationController {
00008
00009 void SequenceRequestWorker::operator () (){
00010 Sct::Throwable* mrs = 0;
00011 try {
00012 cout << "In SequenceRequestWorker operator () 1" << endl;
00013 Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 1/4");
00014 m_cc.executeSequence(m_sr);
00015 Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 2/4");
00016 m_cc.status.status = m_cc.status.INCONTROL;
00017 Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 3/4");
00018 m_cc.updateStatus();
00019 Sct::BugReport("BUG01","SequenceRequestWorker.cpp","In SequenceRequestWorker operator () 4/4");
00020 cout << "End of SequenceRequestWorker operator() 4" << endl;
00021 } catch(Sct::Throwable &e) {
00022 e.sendToMrs(MRS_ERROR);
00023 } catch(std::exception &e) {
00024 mrs = new Sct::StdExceptionWrapper(e);
00025 } catch(std::string &s) {
00026 std::ostringstream os;
00027 os<<"uncaught string expection "<<s;
00028 mrs = new Sct::Error(os.str(), __FILE__, __LINE__);
00029 } catch(CORBA::Exception& e){
00030 Sct::CorbaExceptionWrapper(e, "error in SequenceRequestWorker thread", __FILE__, __LINE__).sendToMrs(MRS_ERROR);
00031 } catch(...) {
00032 mrs = new Sct::Error("uncaught unknown exception", __FILE__, __LINE__);
00033 }
00034 if (mrs) {
00035 mrs->sendToMrs(MRS_ERROR);
00036 }
00037 }
00038 }