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 }