Gaudi Framework, version v21r11

Home   Generated: 30 Sep 2010

Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 > Struct Template Reference

Helper structure for implementation of "getOrCreate"-functions for GaudiCommon<BASE>. More...

#include <GetData.h>

Inheritance diagram for Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >:
[legend]

List of all members.

Public Types

typedef Getter::Type Type
typedef Getter::return_type return_type
 the actual return type

Public Member Functions

template<class COMMON>
return_type operator() (const COMMON &common, IDataProviderSvc *service, const std::string &location, const std::string &location2) const
 the only one essential method

Private Types

typedef GetData< TYPE > Getter
 the actual data getter


Detailed Description

template<class TYPE, class TYPE2>
struct Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >

Helper structure for implementation of "getOrCreate"-functions for GaudiCommon<BASE>.

Author:
Vanya BELYAEV Ivan.Belyaev@nikhef.nl
Date:
2008-07-22

Definition at line 380 of file GetData.h.


Member Typedef Documentation

template<class TYPE, class TYPE2>
typedef GetData<TYPE> Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >::Getter [private]

the actual data getter

Definition at line 385 of file GetData.h.

template<class TYPE, class TYPE2>
typedef Getter::Type Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >::Type

Definition at line 389 of file GetData.h.

template<class TYPE, class TYPE2>
typedef Getter::return_type Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >::return_type

the actual return type

Definition at line 391 of file GetData.h.


Member Function Documentation

template<class TYPE, class TYPE2>
template<class COMMON>
return_type Gaudi::Utils::GetOrCreateData< TYPE, TYPE2 >::operator() ( const COMMON &  common,
IDataProviderSvc service,
const std::string location,
const std::string location2 
) const [inline]

the only one essential method

Parameters:
common the actual "worker"
service pointer to Data Provider Service
location location of objects in TES
Returns:
the data

check the data

Definition at line 403 of file GetData.h.

00407       {
00408         SmartDataPtr<TYPE> obj ( service , location ) ;
00409         if ( !obj ) 
00410         {
00411           TYPE2* o = new TYPE2() ;
00412           common.put ( service , o , location2 ) ;
00413           if ( common.msgLevel ( MSG::DEBUG ) )
00414           { common.debug() << "The object of type '"
00415                            << System::typeinfoName(typeid(*o))
00416                            << "' has been created from TS at address '"
00417                            << location2 << "'" << endmsg ; }
00418           return_type _o = o ;
00419           return _o ;
00420         }
00421         return_type ret = obj ;
00423         common.Assert ( !(!ret) , "get():: No valid data at '" + location + "'"  ) ;
00424         if ( common.msgLevel ( MSG::DEBUG ) )
00425         { common.debug() << "The object of type '"
00426                          << System::typeinfoName(typeid(*ret))
00427                          << "' has been retrieved from TS at address '"
00428                          << location << "'" << endmsg ; }
00429         // return *VALID* data 
00430         return ret ;
00431         // ====================================================================
00432       }


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

Generated at Thu Sep 30 09:58:57 2010 for Gaudi Framework, version v21r11 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004