All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
RndmGenerators.cpp
Go to the documentation of this file.
1 #define GAUDI_RNDMGENSVC_RNDMGENGENERATORS_CPP
2 
3 // Framework include files
4 #include "GaudiKernel/SmartIF.h"
5 #include "GaudiKernel/IRndmGen.h"
6 #include "GaudiKernel/IRndmGenSvc.h"
7 #include "GaudiKernel/RndmGenerators.h"
8 #include "GaudiKernel/GaudiException.h"
9 
10 
11 
12 // Construct and initialize the generator
14 {
15  StatusCode status = initialize(svc, par);
16  if (!status.isSuccess()) {
17  throw GaudiException ("Initialization failed !", "Rndm::Numbers", status);
18  }
19 }
20 
21 // Standard destructor
23  finalize().ignore();
24 }
25 
26 // Initialize the generator
28  const IRndmGen::Param& par) {
29  if ( svc && !m_generator ) m_generator = svc->generator( par );
30  return m_generator ? StatusCode::SUCCESS : StatusCode::FAILURE;
31 }
32 
33 // Initialize the generator
35  if ( m_generator ) {
36  m_generator->finalize().ignore();
37  m_generator.reset();
38  }
39  return StatusCode::SUCCESS;
40 }
41 
42 #if !defined(GAUDI_V22_API) || defined(G22_NEW_SVCLOCATOR)
43 // Construct and initialize the generator
45 {
46  StatusCode status = initialize(svc, par);
47  if (!status.isSuccess()) {
48  throw GaudiException ("Initialization failed !", "Rndm::Numbers", status);
49  }
50 }
51 
52 // Initialize the generator
54  return initialize(SmartIF<IRndmGenSvc>(svc), par);
55 }
56 #endif
Define general base for Gaudi exception.
virtual ~Numbers()
Standard destructor.
def initialize()
Definition: AnalysisTest.py:12
bool isSuccess() const
Test for a status code of SUCCESS.
Definition: StatusCode.h:76
virtual StatusCode generator(const IRndmGen::Param &par, IRndmGen *&refpGen)=0
Add a Generator factory.
virtual StatusCode finalize()
Finalization.
Random Generator service interface definition Definition of a interface for a service to access rando...
Definition: IRndmGenSvc.h:35
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:26
virtual StatusCode initialize(const SmartIF< IRndmGenSvc > &svc, const IRndmGen::Param &par)
Initialization.
Numbers()=default
Standard constructor.
void ignore() const
Definition: StatusCode.h:108