00001 #include "AnalysisService.h"
00002 #include <pmg/pmg_initSync.h>
00003
00004 #include "Sct/IpcObjectException.h"
00005
00006 #include <ipc/core.h>
00007 #include <boost/scoped_ptr.hpp>
00008
00009 using boost::scoped_ptr;
00010
00011 int main(int argc, char** argv) {
00012 using namespace SctAnalysis;
00013 setExceptionHandlers(argv[0]);
00014
00015 IPCCore::init(argc,argv);
00016
00017 AnalysisArguments args(argc, argv);
00018 args.print(std::cout);
00019 AnalysisService& s=AnalysisService::initialize(args);
00020
00021 try {
00022 if (!s.publish()) {
00023 IpcObjectException e("Failed to publish Analysis Service", __FILE__, __LINE__);
00024 e.sendToMrs(MRS_ERROR);
00025 }
00026
00027 pmg_initSync();
00028 s.run();
00029 s.getServer().run();
00030 s.withdraw();
00031 } catch (Throwable& e) {
00032 e.sendToMrs(MRS_FATAL);
00033 std::terminate();
00034 }
00035 }