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