Gaudi Framework, version v21r7

Home   Generated: 22 Jan 2010

GaudiMain.cpp

Go to the documentation of this file.
00001 // $Id: GaudiMain.cpp,v 1.4 2006/09/13 15:25:15 hmd Exp $
00002 //------------------------------------------------------------------------------
00003 //
00004 //  Description: Main Program for Gaudi applications
00005 //
00006 //------------------------------------------------------------------------------
00007 #include "GaudiKernel/SmartIF.h"
00008 #include "GaudiKernel/Bootstrap.h"
00009 #include "GaudiKernel/IAppMgrUI.h"
00010 #include "GaudiKernel/IProperty.h"
00011 #include "GaudiKernel/StatusCode.h"
00012 #include <iostream>
00013 
00014 extern "C" GAUDI_API int GaudiMain(int argc,char **argv) {
00015   IInterface* iface = Gaudi::createApplicationMgr();
00016   SmartIF<IProperty>     propMgr ( iface );
00017   SmartIF<IAppMgrUI>     appMgr  ( iface );
00018 
00019   if( !appMgr.isValid() || !propMgr.isValid() ) {
00020     std::cout << "Fatal error while creating the ApplicationMgr " << std::endl;
00021     return 1;
00022   }
00023 
00024   // Get the input configuration file from arguments
00025   std:: string opts = (argc>1) ? argv[1] : "jobOptions.txt";
00026 
00027   propMgr->setProperty( "JobOptionsPath", opts ).ignore();
00028 
00029   if( opts.substr( opts.length() - 3, 3 ) == ".py" ) {
00030     propMgr->setProperty( "EvtSel",         "NONE" ).ignore();
00031     propMgr->setProperty( "JobOptionsType", "NONE" ).ignore();
00032     propMgr->setProperty( "DLLs",           "['GaudiPython']" ).ignore();
00033     propMgr->setProperty( "Runable",        "PythonScriptingSvc" ).ignore();
00034   }
00035 
00036   // Run the application manager and process events
00037   StatusCode sc=appMgr->run();
00038   // Release Application Manager
00039   iface->release();
00040   // All done - exit
00041   return (sc.isSuccess())?0:1;
00042 }

Generated at Fri Jan 22 20:27:54 2010 for Gaudi Framework, version v21r7 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004