The Gaudi Framework  master (ff829712)
Loading...
Searching...
No Matches
IThreadInitTool Class Referenceabstract

Abstract interface for AlgTools to do thread local initialization. More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/IThreadInitTool.h>

Inheritance diagram for IThreadInitTool:
Collaboration diagram for IThreadInitTool:

Public Member Functions

 DeclareInterfaceID (IThreadInitTool, 1, 0)
 Declare the interface to the framework.
 
virtual void initThread ()=0
 Perform worker thread initialization. Called concurrently on each thread.
 
virtual void terminateThread ()=0
 Perform worker thread finalization. Called concurrently on each thread.
 
virtual unsigned int nInit () const =0
 Number of threads initialized.
 
- Public Member Functions inherited from IAlgTool
 DeclareInterfaceID (IAlgTool, 4, 0)
 InterfaceID.
 
virtual const std::string & type () const =0
 The type of an AlgTool, meaning the concrete AlgTool class.
 
virtual const IInterfaceparent () const =0
 The parent of the concrete AlgTool.
 
virtual StatusCode configure ()=0
 Configuration (from OFFLINE to CONFIGURED).
 
virtual StatusCode initialize ()=0
 Initialization (from CONFIGURED to INITIALIZED).
 
virtual StatusCode start ()=0
 Start (from INITIALIZED to RUNNING).
 
virtual StatusCode stop ()=0
 Stop (from RUNNING to INITIALIZED).
 
virtual StatusCode finalize ()=0
 Finalize (from INITIALIZED to CONFIGURED).
 
virtual StatusCode terminate ()=0
 Initialization (from CONFIGURED to OFFLINE).
 
virtual StatusCode reinitialize ()=0
 Initialization (from INITIALIZED or RUNNING to INITIALIZED, via CONFIGURED).
 
virtual StatusCode restart ()=0
 Initialization (from RUNNING to RUNNING, via INITIALIZED).
 
virtual Gaudi::StateMachine::State FSMState () const =0
 Get the current state.
 
virtual StatusCode sysInitialize ()=0
 Initialization of the Tool.
 
virtual StatusCode sysStart ()=0
 Initialization of the Tool.
 
virtual StatusCode sysStop ()=0
 Initialization of the Tool.
 
virtual StatusCode sysFinalize ()=0
 Finalization of the Tool.
 
virtual StatusCode sysReinitialize ()=0
 Initialization of the Tool.
 
virtual StatusCode sysRestart ()=0
 Initialization of the Tool.
 
- Public Member Functions inherited from INamedInterface
 DeclareInterfaceID (INamedInterface, 1, 0)
 InterfaceID.
 
virtual const std::string & name () const =0
 Retrieve the name of the instance.
 
- Public Member Functions inherited from IInterface
template<Gaudi::IsInterface TARGET>
TARGET * cast ()
 
template<Gaudi::IsInterface TARGET>
TARGET const * cast () const
 
template<typename TARGET>
requires ( !Gaudi::IsInterface<TARGET> )
TARGET * cast ()
 
template<typename TARGET>
requires ( !Gaudi::IsInterface<TARGET> )
TARGET const * cast () const
 
virtual std::vector< std::string > getInterfaceNames () const =0
 Returns a vector of strings containing the names of all the implemented interfaces.
 
virtual unsigned long addRef () const =0
 Increment the reference count of Interface instance.
 
virtual unsigned long release () const =0
 Release Interface instance.
 
virtual unsigned long refCount () const =0
 Current reference count.
 
virtual StatusCode queryInterface (const InterfaceID &ti, void **pp)=0
 Set the void** to the pointer to the requested interface of the instance.
 
virtual ~IInterface ()=default
 Virtual destructor.
 
virtual void const * i_cast (const InterfaceID &) const =0
 
void * i_cast (const InterfaceID &iid)
 

Additional Inherited Members

- Public Types inherited from IInterface
enum class  Status : StatusCode::code_t {
  FAILURE = 0 , SUCCESS = 1 , NO_INTERFACE , VERSMISMATCH ,
  LAST_ERROR
}
 Return status. More...
 
using iid = Gaudi::InterfaceId<IInterface, 0, 0>
 Interface ID.
 
using ext_iids = Gaudi::interface_list<iid>
 Extra interfaces.
 
- Static Public Member Functions inherited from IInterface
static const InterfaceIDinterfaceID ()
 Return an instance of InterfaceID identifying the interface.
 
- Protected Member Functions inherited from IInterface
virtual unsigned long decRef () const =0
 Decrement reference count and return the new reference count.
 

Detailed Description

Abstract interface for AlgTools to do thread local initialization.

Tools that implement this interface can be plugged into a ThreadPoolSvc to be called during the initialization of each worker thread to do thread-local setup. Correspondingly, the tool will be invoked again at the end of processing in each thread to do thread-local cleanup or final work.

Author
Charles Leggett
Date
2015-09-01

Definition at line 33 of file IThreadInitTool.h.

Member Function Documentation

◆ DeclareInterfaceID()

IThreadInitTool::DeclareInterfaceID ( IThreadInitTool ,
1 ,
0  )

Declare the interface to the framework.

◆ initThread()

virtual void IThreadInitTool::initThread ( )
pure virtual

Perform worker thread initialization. Called concurrently on each thread.

◆ nInit()

virtual unsigned int IThreadInitTool::nInit ( ) const
pure virtual

Number of threads initialized.

Used for some error checking. The count must be atomically incremented during initialization and atomically decremented during finalization.

◆ terminateThread()

virtual void IThreadInitTool::terminateThread ( )
pure virtual

Perform worker thread finalization. Called concurrently on each thread.


The documentation for this class was generated from the following file: