The Gaudi Framework  v37r0 (b608885e)
DataObjectHandle< Gaudi::NamedRange_< T > > Class Template Reference

specialization for NamedRange_ More...

#include </builds/gaudi/Gaudi/GaudiKernel/include/GaudiKernel/DataObjectHandle.h>

Inheritance diagram for DataObjectHandle< Gaudi::NamedRange_< T > >:
Collaboration diagram for DataObjectHandle< Gaudi::NamedRange_< T > >:

Public Types

using ValueType = std::remove_cv_t< std::remove_pointer_t< typename T::value_type > >
 
using Range = Gaudi::NamedRange_< typename ValueType::ConstVector >
 
- Public Types inherited from Gaudi::DataHandle
enum  Mode { Reader = 1 << 2, Writer = 1 << 4 }
 
using PropertyType = DataHandleProperty
 

Public Member Functions

Range get () const
 Retrieve object from transient data store. More...
 
std::string pythonRepr () const override
 
 DataObjectHandleBase (DataObjID k, Gaudi::DataHandle::Mode a, IDataHandleHolder *owner)
 
 DataObjectHandleBase (std::string k, Gaudi::DataHandle::Mode a, IDataHandleHolder *owner)
 
 DataObjectHandleBase (const DataObjectHandleBase &)=delete
 
 DataObjectHandleBase (DataObjectHandleBase &&)
 
template<class OWNER , class K , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
 DataObjectHandleBase (OWNER *owner, Gaudi::DataHandle::Mode m, std::string name, K key={}, std::string doc="")
 Autodeclaring constructor with property name, mode, key and documentation. More...
 
- Public Member Functions inherited from DataObjectHandleBase
 DataObjectHandleBase (DataObjID k, Gaudi::DataHandle::Mode a, IDataHandleHolder *owner)
 
 DataObjectHandleBase (std::string k, Gaudi::DataHandle::Mode a, IDataHandleHolder *owner)
 
 ~DataObjectHandleBase () override
 
 DataObjectHandleBase (const DataObjectHandleBase &)=delete
 
 DataObjectHandleBase (DataObjectHandleBase &&)
 
DataObjectHandleBaseoperator= (const DataObjectHandleBase &)
 
template<class OWNER , class K , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
 DataObjectHandleBase (OWNER *owner, Gaudi::DataHandle::Mode m, std::string name, K key={}, std::string doc="")
 Autodeclaring constructor with property name, mode, key and documentation. More...
 
bool isOptional () const
 Check if the data object declared is optional for the algorithm. More...
 
void setOptional (bool optional=true)
 
bool isValid () const
 
- Public Member Functions inherited from Gaudi::DataHandle
 DataHandle (DataObjID k, Mode a=Reader, IDataHandleHolder *owner=nullptr)
 
 DataHandle (DataObjID k, bool isCond, Mode a=Reader, IDataHandleHolder *owner=nullptr)
 
virtual ~DataHandle ()=default
 
virtual void setOwner (IDataHandleHolder *o)
 
virtual IDataHandleHolderowner () const
 
virtual Mode mode () const
 
virtual void setKey (DataObjID key) const
 
virtual void updateKey (std::string key) const
 
virtual const std::stringobjKey () const
 
virtual const DataObjIDfullKey () const
 
virtual void reset (bool)
 
virtual bool isCondition () const
 

Private Attributes

mutable ::details::Converter_t< Rangem_converter = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from DataObjectHandleBase
bool init () override
 
DataObjectfetch () const
 
- Protected Attributes inherited from DataObjectHandleBase
SmartIF< IDataProviderSvcm_EDS
 
SmartIF< IMessageSvcm_MS
 
bool m_init = false
 
bool m_optional = false
 
std::atomic< bool > m_searchDone = false
 Whether the search part of the fetch method (so dealing with alt names was already executed or not. More...
 
std::mutex m_searchMutex
 A Mutex protecting the calls to the search part of the fetch method, so that we are sure that we only call it once. More...
 
- Protected Attributes inherited from Gaudi::DataHandle
DataObjID m_key = { "NONE" }
 The key of the object behind this DataHandle Although it may look strange to have it mutable, this can actually change in case the object had alternative names, and it should not be visible to the end user, for which the Handle is still the same. More...
 
IDataHandleHolderm_owner = nullptr
 
- Static Protected Attributes inherited from Gaudi::DataHandle
static const std::string default_type = "unknown_t"
 

Detailed Description

template<typename T>
class DataObjectHandle< Gaudi::NamedRange_< T > >

specialization for NamedRange_

Definition at line 239 of file DataObjectHandle.h.

Member Typedef Documentation

◆ Range

template<typename T >
using DataObjectHandle< Gaudi::NamedRange_< T > >::Range = Gaudi::NamedRange_<typename ValueType::ConstVector>

Definition at line 242 of file DataObjectHandle.h.

◆ ValueType

template<typename T >
using DataObjectHandle< Gaudi::NamedRange_< T > >::ValueType = std::remove_cv_t<std::remove_pointer_t<typename T::value_type> >

Definition at line 241 of file DataObjectHandle.h.

Member Function Documentation

◆ DataObjectHandleBase() [1/5]

template<typename T >
DataObjectHandleBase::DataObjectHandleBase
delete

◆ DataObjectHandleBase() [2/5]

template<typename T >
DataObjectHandleBase::DataObjectHandleBase

Definition at line 43 of file DataObjectHandleBase.cpp.

27  : Gaudi::DataHandle( other )
28  , m_EDS( std::move( other.m_EDS ) )
29  , m_MS( std::move( other.m_MS ) )
30  , m_init( other.m_init )
31  , m_optional( other.m_optional )
32  , m_searchDone( other.m_searchDone.load() ) {
33  m_owner->declare( *this );
34 }

◆ DataObjectHandleBase() [3/5]

template<typename T >
DataObjectHandleBase::DataObjectHandleBase

Definition at line 38 of file DataObjectHandleBase.cpp.

52  : Gaudi::DataHandle( std::move( k ), a, owner ) {
53  m_owner->declare( *this );
54 }

◆ DataObjectHandleBase() [4/5]

template<typename T >
template<class OWNER , class K , typename = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>>>
DataObjectHandleBase::DataObjectHandleBase ( class OWNER  ,
class ,
typename  = std::enable_if_t<std::is_base_of_v<IProperty, OWNER>> 
)
inline

Autodeclaring constructor with property name, mode, key and documentation.

Note
the use std::enable_if is required to avoid ambiguities

Definition at line 49 of file DataObjectHandleBase.h.

49  {},
50  std::string doc = "" )
52  auto p = owner->declareProperty( std::move( name ), *this, std::move( doc ) );
53  p->template setOwnerType<OWNER>();
54  }

◆ DataObjectHandleBase() [5/5]

template<typename T >
DataObjectHandleBase::DataObjectHandleBase

Definition at line 39 of file DataObjectHandleBase.cpp.

59  : DataObjectHandleBase( DataObjID{ std::move( k ) }, a, owner ) {}

◆ get()

template<typename T >
Range DataObjectHandle< Gaudi::NamedRange_< T > >::get ( ) const

Retrieve object from transient data store.

◆ pythonRepr()

template<typename T >
std::string DataObjectHandle< Gaudi::NamedRange_< T > >::pythonRepr ( ) const
inlineoverridevirtual

Reimplemented from Gaudi::DataHandle.

Definition at line 251 of file DataObjectHandle.h.

251  {
252  auto repr = DataObjectHandleBase::pythonRepr();
253  boost::replace_all( repr, default_type, System::typeinfoName( typeid( Gaudi::NamedRange_<T> ) ) );
254  return repr;
255  }

Member Data Documentation

◆ m_converter

template<typename T >
mutable ::details::Converter_t<Range> DataObjectHandle< Gaudi::NamedRange_< T > >::m_converter = nullptr
private

Definition at line 258 of file DataObjectHandle.h.


The documentation for this class was generated from the following file:
std::string
STL class.
Gaudi::NamedRange_
Definition: NamedRange.h:52
std::move
T move(T... args)
bug_34121.name
name
Definition: bug_34121.py:20
Gaudi::DataHandle::default_type
static const std::string default_type
Definition: DataHandle.h:83
DataObjectHandleBase::m_EDS
SmartIF< IDataProviderSvc > m_EDS
Definition: DataObjectHandleBase.h:70
DataObjectHandleBase::m_MS
SmartIF< IMessageSvc > m_MS
Definition: DataObjectHandleBase.h:71
DataObjectHandleBase::m_optional
bool m_optional
Definition: DataObjectHandleBase.h:74
Gaudi::DataHandle
Definition: DataHandle.h:38
System::typeinfoName
GAUDI_API const std::string typeinfoName(const std::type_info &)
Get platform independent information about the class type.
Definition: System.cpp:313
IDataHandleHolder::declare
virtual void declare(Gaudi::DataHandle &)=0
Gaudi::DataHandle::owner
virtual IDataHandleHolder * owner() const
Definition: DataHandle.h:53
DataObjectHandleBase::m_init
bool m_init
Definition: DataObjectHandleBase.h:73
Gaudi::Units::m
constexpr double m
Definition: SystemOfUnits.h:108
Gaudi::DataHandle::m_owner
IDataHandleHolder * m_owner
Definition: DataHandle.h:81
DataObjID
Definition: DataObjID.h:47
DataObjectHandleBase::m_searchDone
std::atomic< bool > m_searchDone
Whether the search part of the fetch method (so dealing with alt names was already executed or not.
Definition: DataObjectHandleBase.h:81
Gaudi::DataHandle::pythonRepr
virtual std::string pythonRepr() const
Definition: DataHandle.cpp:19
DataObjectHandleBase::DataObjectHandleBase
DataObjectHandleBase(DataObjID k, Gaudi::DataHandle::Mode a, IDataHandleHolder *owner)
Definition: DataObjectHandleBase.cpp:51
ProduceConsume.key
key
Definition: ProduceConsume.py:81