00001 #include "Fitter.h"
00002 #include "Sct/SctNames.h"
00003 #include "Sct/IpcObjectException.h"
00004 #include "Sct/ApplicationStartupDebugTools.h"
00005 #include "FitterInterface.hh"
00006 #include <mrs/message.h>
00007 #include <ipc/core.h>
00008 #include <pmg/pmg_initSync.h>
00009
00010
00011 using namespace Sct;
00012
00019 int main(int argc, char** argv){
00020 using namespace SctFitter;
00021 using namespace std;
00022
00023 setExceptionHandlers(argv[0]);
00024
00025 IPCCore::init(argc, argv);
00026 Sct::ApplicationStartupDebugTools::announceStartOfMain(argc, argv, __FILE__, __LINE__);
00027
00028 try{
00029 FitterArguments opts(argc, argv);
00030 opts.print(std::cout);
00031
00032
00033 Fitter& f = Fitter::initialize(opts);
00034
00035 if (!f.publish()){
00036 throw IpcObjectException("FittingService failed to publish", __FILE__, __LINE__);
00037 }
00038
00039 f.go();
00040 pmg_initSync();
00041 Fitter::getFitterServer().run();
00042 }
00043 catch (Throwable& e){
00044 std::cerr << e.what()<<std::endl;;
00045 e.sendToMrs(MRS_ERROR) ;
00046 terminate();
00047 }
00048 }