The Gaudi Framework  v30r3 (a5ef0a68)
IThreadInitTool Class Referenceabstract

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

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

Additional Inherited Members

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

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 24 of file IThreadInitTool.h.

Member Function Documentation

IThreadInitTool::DeclareInterfaceID ( IThreadInitTool  ,
,
 
)

Declare the interface to the framework.

virtual void IThreadInitTool::initThread ( )
pure virtual

Perform worker thread initialization. Called concurrently on each thread.

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.

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: