Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:57:40

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_ISTATEFUL_H
0012 #define GAUDIKERNEL_ISTATEFUL_H
0013 
0014 // Include Files
0015 #include "GaudiKernel/IInterface.h"
0016 #include "GaudiKernel/StateMachine.h"
0017 #include <string>
0018 
0019 /** @class IStateful IStateful.h GaudiKernel/IStateful.h
0020  *
0021  * Interface for classes that implement the Gaudi State Machine
0022  *
0023  * @author Marco Clemencic
0024  * @date   2008-05-15
0025  */
0026 class GAUDI_API IStateful : virtual public IInterface {
0027 public:
0028   /// InterfaceID
0029   DeclareInterfaceID( IStateful, 1, 0 );
0030 
0031   /** Configuration (from OFFLINE to CONFIGURED).
0032    */
0033   virtual StatusCode configure() = 0;
0034 
0035   /** Initialization (from CONFIGURED to INITIALIZED).
0036    */
0037   virtual StatusCode initialize() = 0;
0038 
0039   /** Start (from INITIALIZED to RUNNING).
0040    */
0041   virtual StatusCode start() = 0;
0042 
0043   /** Stop (from RUNNING to INITIALIZED).
0044    */
0045   virtual StatusCode stop() = 0;
0046 
0047   /** Finalize (from INITIALIZED to CONFIGURED).
0048    */
0049   virtual StatusCode finalize() = 0;
0050 
0051   /** Initialization (from CONFIGURED to OFFLINE).
0052    */
0053   virtual StatusCode terminate() = 0;
0054 
0055   /** Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
0056    */
0057   virtual StatusCode reinitialize() = 0;
0058 
0059   /** Initialization (from RUNNING to RUNNING, via INITIALIZED).
0060    */
0061   virtual StatusCode restart() = 0;
0062 
0063   /** Get the current state.
0064    */
0065   virtual Gaudi::StateMachine::State FSMState() const = 0;
0066 
0067   /** When we are in the middle of a transition, get the state where the
0068    *  transition is leading us. Otherwise it returns the same state as state().
0069    */
0070   virtual Gaudi::StateMachine::State targetFSMState() const = 0;
0071 };
0072 
0073 #endif // GAUDIKERNEL_ISTATEFUL_H