| The Gaudi Framework v32r1 (f65d50dc)

Public Types | Public Member Functions | Private Member Functions | List of all members
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > > Struct Template Reference

the template specialization for ranges More...

`#include <GaudiAlg/GetData.h>`

## Public Types
typedef Gaudi::Range_< std::vector< const TYPE * > > | Type
| the actual return type More...
typedef _GetType< Type >::return_type | return_type

## Public Member Functions
template<class COMMON >
return_type | operator() (const COMMON &common, IDataProviderSvc *service, const std::string &location, const bool checkData=true) const
| the only one essential method More...
return_type | make_range (const typename TYPE::Container *cnt) const
return_type | make_range (const typename TYPE::Selection *cnt) const
DataObject * | getData (IDataProviderSvc *service, const std::string &location) const
| get the data form transient store More...

## Private Member Functions
template<class ITERATOR >
return_type | make_range (ITERATOR first, ITERATOR last) const

## Detailed Description

### template<class TYPE>
struct Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >

the template specialization for ranges

Definition at line 151 of file GetData.h.

## Member Typedef Documentation

## ◆ return_type

template<class TYPE >

typedef _GetType<Type>::return_type Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::return_type

Definition at line 156 of file GetData.h.

## ◆ Type

template<class TYPE >

typedef Gaudi::Range_<std::vector<const TYPE*> > Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::Type

the actual return type

Definition at line 155 of file GetData.h.

## Member Function Documentation

## ◆ getData()

template<class TYPE >

DataObject* Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::getData | ( | IDataProviderSvc * | service,
|  | const std::string & | location
| ) |  | const
| inline

get the data form transient store

Parameters

  service | pointer to data provider service
  location | the location

Returns
  the object for TES

Try to be efficient

Definition at line 219 of file GetData.h.

219 {
221 SmartDataObjectPtr getter( SmartDataObjectPtr::ObjectLoader::access(), service, nullptr, location );
222 return getter.accessData();
223 }
GaudiPython.HistoUtils.location
location
Definition: HistoUtils.py:936
SmartDataObjectPtr
A small class used to access easily (and efficiently) data items residing in data stores.
Definition: SmartDataObjectPtr.h:32
SmartDataObjectPtr::ObjectLoader::access
static AccessFunction access()
Definition: SmartDataObjectPtr.cpp:17

## ◆ make_range() [1/3]

template<class TYPE >

return_type Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::make_range | ( | const typename TYPE::Container * | cnt | ) | const
| inline

Definition at line 206 of file GetData.h.

206 {
207 return 0 == cnt ? return_type() : make_range( cnt->begin(), cnt->end() );
208 }
Gaudi::Utils::end
AttribStringParser::Iterator end(const AttribStringParser &)
Definition: AttribStringParser.h:123
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::return_type
_GetType< Type >::return_type return_type
Definition: GetData.h:156
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::make_range
return_type make_range(const typename TYPE::Container *cnt) const
Definition: GetData.h:206
Gaudi::Utils::begin
AttribStringParser::Iterator begin(const AttribStringParser &parser)
Definition: AttribStringParser.h:120

## ◆ make_range() [2/3]

template<class TYPE >

return_type Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::make_range | ( | const typename TYPE::Selection * | cnt | ) | const
| inline

Definition at line 210 of file GetData.h.

210 {
211 return 0 == cnt ? return_type() : return_type( cnt->begin(), cnt->end() );
212 }
Gaudi::Utils::end
AttribStringParser::Iterator end(const AttribStringParser &)
Definition: AttribStringParser.h:123
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::return_type
_GetType< Type >::return_type return_type
Definition: GetData.h:156
Gaudi::Utils::begin
AttribStringParser::Iterator begin(const AttribStringParser &parser)
Definition: AttribStringParser.h:120

## ◆ make_range() [3/3]

template<class TYPE >
template<class ITERATOR >

return_type Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::make_range | ( | ITERATOR | first,
|  | ITERATOR | last
| ) |  | const
| inline private

Definition at line 228 of file GetData.h.

228 {
229 auto _begin = reinterpret_cast<typename return_type::const_iterator*>( &first );
230 auto _end = reinterpret_cast<typename return_type::const_iterator*>( &last );
231 return return_type( *_begin, *_end );
232 }
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::return_type
_GetType< Type >::return_type return_type
Definition: GetData.h:156

## ◆ operator()()

template<class TYPE >
template<class COMMON >

return_type Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::operator() | ( | const COMMON & | common,
|  | IDataProviderSvc * | service,
|  | const std::string & | location,
|  | const bool | checkData = `true`
| ) |  | const
| inline

the only one essential method

Parameters

  common | the actual "worker"
  service | pointer to Data Provider Service
  location | location of objects in TES
  checkData | whether to check if the pointer is valid before returning it

Returns
  the data

try to be efficient:

1. load object only once:
2. try to get the selection
3. try to get the container

Definition at line 168 of file GetData.h.

169 {
172 DataObject* object = this->getData( service, location );
173 if ( object ) {
175 typedef typename TYPE::Selection Selection_;
176 const Selection_* sel = dynamic_cast<Selection_*>( object );
177 if ( sel ) {
178 if ( common.msgLevel( MSG::DEBUG ) ) {
179 common.debug() << "The object of type '" << System::typeinfoName( typeid( *object ) )
180 << "' has been retrieved from TS at address '" << location << "'" << endmsg;
181 }
182 return make_range( sel );
183 }
185 typedef typename TYPE::Container Container_;
186 const Container_* cnt = dynamic_cast<Container_*>( object );
187 if ( cnt ) {
188 if ( common.msgLevel( MSG::DEBUG ) ) {
189 common.debug() << "The object of type '" << System::typeinfoName( typeid( *object ) )
190 << "' has been retrieved from TS at address '" << location << "'" << endmsg;
191 }
192 return make_range( cnt );
193 }
194 // no valid data
195 if ( checkData ) common.Assert( false, "get():: No valid data at '" + location + "'" );
196 }
197 // no valid data
198 if ( checkData ) common.Assert( false, "get():: No data at '" + location + "'" );
199 // the fictive return
200 return return_type();
201 }
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:298
GaudiPython.HistoUtils.location
location
Definition: HistoUtils.py:936
MSG::DEBUG
Definition: IMessageSvc.h:15
IOTest.sel
sel
Definition: IOTest.py:93
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::return_type
_GetType< Type >::return_type return_type
Definition: GetData.h:156
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::getData
DataObject * getData(IDataProviderSvc *service, const std::string &location) const
get the data form transient store
Definition: GetData.h:219
Gaudi::Utils::GetData< Gaudi::Range_< std::vector< const TYPE * > > >::make_range
return_type make_range(const typename TYPE::Container *cnt) const
Definition: GetData.h:206
DataObject
A DataObject is the base class of any identifiable object on any data store.
Definition: DataObject.h:30
endmsg
MsgStream & endmsg(MsgStream &s)
MsgStream Modifier: endmsg. Calls the output method of the MsgStream.
Definition: MsgStream.h:192

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

- GaudiAlg/GaudiAlg/GetData.h