Gaudi Framework, version v20r3

Generated: 24 Nov 2008

RndmEngine.cpp

Go to the documentation of this file.
00001 //====================================================================
00002 //      Random Engine implementation
00003 //--------------------------------------------------------------------
00004 //
00005 //      Package    : Gaudi/RndmGen ( The LHCb Offline System)
00006 //      Author     : M.Frank
00007 //  History    :
00008 // +---------+----------------------------------------------+---------
00009 // |    Date |                 Comment                      | Who     
00010 // +---------+----------------------------------------------+---------
00011 // | 29/10/99| Initial version                              | MF
00012 // +---------+----------------------------------------------+---------
00013 //
00014 //====================================================================
00015 #define GAUDI_RANDOMGENSVC_RndmEngine_CPP
00016 
00017 // STL include files
00018 #include <cfloat>
00019 
00020 // Framework include files
00021 #include "GaudiKernel/IMessageSvc.h"
00022 #include "GaudiKernel/ISvcLocator.h"
00023 #include "GaudiKernel/IIncidentSvc.h"
00024 #include "GaudiKernel/IOpaqueAddress.h"
00025 #include "GaudiKernel/IDataProviderSvc.h"
00026 #include "GaudiKernel/DataObject.h"
00027 #include "GaudiKernel/MsgStream.h"
00028 #include "RndmEngine.h"
00029 
00031 RndmEngine::RndmEngine(const std::string& name, ISvcLocator* loc)
00032 : Service(name, loc), m_pIncidentSvc(0)
00033 {
00034 }
00035 
00037 RndmEngine::~RndmEngine()   {
00038   if ( m_pIncidentSvc  ) m_pIncidentSvc->release();
00039 }
00040 
00042 StatusCode RndmEngine::queryInterface(const InterfaceID& riid, void** ppvInterface)  {
00043   if ( IID_IRndmEngine == riid )   {
00044     *ppvInterface = (IRndmEngine*)this;
00045   }
00046   else if ( IID_ISerialize == riid )   {
00047     *ppvInterface = (ISerialize*)this;
00048   }
00049   else if ( IID_IIncidentListener == riid )   {
00050     *ppvInterface = (IIncidentListener*)this;
00051   }
00052   else  {
00053     return Service::queryInterface(riid, ppvInterface);
00054   }
00055   addRef();
00056   return StatusCode::SUCCESS;
00057 }
00058 
00060 StatusCode RndmEngine::initialize()   {
00061   StatusCode status = Service::initialize();
00062   if ( status.isSuccess() )   {
00063     status = setProperties();
00064     if ( status.isSuccess() )   {
00065       status = serviceLocator()->service( "IncidentSvc", m_pIncidentSvc, true );
00066     }
00067   }
00068   return status;
00069 }
00070 
00072 StatusCode RndmEngine::finalize()   {
00073   StatusCode status = Service::finalize();
00074   if ( m_pIncidentSvc )     {
00075     m_pIncidentSvc->release();
00076   }
00077   m_pIncidentSvc = 0;
00078   return status;
00079 }
00080 
00082 
00083 StreamBuffer& RndmEngine::serialize(StreamBuffer& str)    {
00084   return str;
00085 }
00086 
00088 StreamBuffer& RndmEngine::serialize(StreamBuffer& str) const    {
00089   return str;
00090 }
00091 
00093 double RndmEngine::rndm() const   {
00094   return DBL_MAX;
00095 }
00096 
00098 void RndmEngine::handle (const Incident& /* inc */ )    {
00099 }
00100 
00107 StatusCode RndmEngine::rndmArray( std::vector<double>& array, long howmany, long start) const   {
00108   long cnt = start;
00109   array.resize(start+howmany);
00110   for ( long i = start, num = start+howmany; i < num; i++ )     {
00111     array[cnt++] = rndm();
00112   }
00113   return StatusCode::SUCCESS;
00114 }
00115 

Generated at Mon Nov 24 14:38:49 2008 for Gaudi Framework, version v20r3 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004