Loading [MathJax]/extensions/tex2jax.js
The Gaudi Framework  v31r0 (aeb156f0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
IRndmGenSvc.h
Go to the documentation of this file.
1 #ifndef GAUDIKERNEL_IRNDMGENSVC_H
2 #define GAUDIKERNEL_IRNDMGENSVC_H
3 
4 // STL include files
5 #include <string>
6 #include <vector>
7 
8 // Framework include files
9 #include "GaudiKernel/IRndmGen.h"
10 #include "GaudiKernel/IService.h"
11 #include "GaudiKernel/SmartIF.h"
12 
13 // Forward declarations
14 class IRndmGen;
15 class StreamBuffer;
16 class IRndmEngine;
17 class IRndmGenFactory;
18 
35 class GAUDI_API IRndmGenSvc : virtual public IService {
36 public:
42  virtual IRndmEngine* engine() = 0;
43 
48  virtual StatusCode generator( const IRndmGen::Param& par, IRndmGen*& refpGen ) = 0;
49 
51  IRndmGen* gen = nullptr;
52  ;
53  generator( par, gen ).ignore();
54  auto r = SmartIF<IRndmGen>{gen};
55  if ( gen ) { gen->release(); }
56  return r;
57  }
58 };
59 
60 #endif // GAUDIKERNEL_IRNDMGENSVC_H
The stream buffer is a small object collecting object data.
Definition: StreamBuffer.h:41
Definition of a interface for a generic random number generators.
Definition: IRndmGen.h:34
SmartIF< IRndmGen > generator(const IRndmGen::Param &par)
Definition: IRndmGenSvc.h:50
Random Generator service interface definition Definition of a interface for a service to access rando...
Definition: IRndmGenSvc.h:35
General service interface definition.
Definition: IService.h:18
This class is used for returning status codes from appropriate routines.
Definition: StatusCode.h:50
virtual unsigned long release()=0
Release Interface instance.
Definition of a interface for a generic random number generator giving randomly distributed numbers i...
Definition: IRndmEngine.h:19
DeclareInterfaceID(IService, 4, 0)
InterfaceID.
#define GAUDI_API
Definition: Kernel.h:71