Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-02-21 10:00:30

0001 /***********************************************************************************\
0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations *
0003 *                                                                                   *
0004 * This software is distributed under the terms of the Apache version 2 licence,     *
0005 * copied verbatim in the file "LICENSE".                                            *
0006 *                                                                                   *
0007 * In applying this licence, CERN does not waive the privileges and immunities       *
0008 * granted to it by virtue of its status as an Intergovernmental Organization        *
0009 * or submit itself to any jurisdiction.                                             *
0010 \***********************************************************************************/
0011 #ifndef GAUDIKERNEL_IAPPMGRUI_H
0012 #define GAUDIKERNEL_IAPPMGRUI_H 1
0013 
0014 // Include files
0015 #include "GaudiKernel/INamedInterface.h"
0016 #include "GaudiKernel/StateMachine.h"
0017 #include "GaudiKernel/StatusCode.h"
0018 
0019 #include <string>
0020 
0021 namespace Gaudi::Monitoring {
0022   struct Hub;
0023 }
0024 
0025 /** @class IAppMgrUI IAppMgrUI.h GaudiKernel/IAppMgrUI.h
0026 
0027     Application Manager User Interface. This is the interface
0028     offered to the UI to control the JOB or Application.
0029 
0030     @author Pere Mato
0031     @date   30/10/98
0032 */
0033 
0034 class GAUDI_API IAppMgrUI : virtual public INamedInterface {
0035 public:
0036   /// InterfaceID
0037   DeclareInterfaceID( IAppMgrUI, 4, 1 );
0038   /// Run the complete job (from initialize to terminate)
0039   virtual StatusCode run() = 0;
0040   /// Configure the job
0041   virtual StatusCode configure() = 0;
0042   /// Terminate the job
0043   virtual StatusCode terminate() = 0;
0044   /// Initialize the job
0045   virtual StatusCode initialize() = 0;
0046   /// Finalize the job
0047   virtual StatusCode finalize() = 0;
0048   /// Process the next maxevt events
0049   virtual StatusCode nextEvent( int maxevt ) = 0;
0050 
0051   /// Start (from INITIALIZED to RUNNING).
0052   virtual StatusCode start() = 0;
0053 
0054   /// Stop (from RUNNING to INITIALIZED).
0055   virtual StatusCode stop() = 0;
0056 
0057   /// Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
0058   virtual StatusCode reinitialize() = 0;
0059 
0060   /// Initialization (from RUNNING to RUNNING, via INITIALIZED).
0061   virtual StatusCode restart() = 0;
0062 
0063   /// Get the current state.
0064   virtual Gaudi::StateMachine::State FSMState() const = 0;
0065 
0066   /// Function to call to update the outputLevel of the components (after a change in MessageSvc).
0067   virtual void outputLevelUpdate() = 0;
0068 
0069   virtual Gaudi::Monitoring::Hub& monitoringHub() {
0070     throw GaudiException( "IAppMgrUI", "monitoringHub access not implemented", StatusCode::FAILURE );
0071   }
0072 };
0073 #endif // KERNEL_IAPPMGRUI_H