 |
ATLAS Offline Software
|
Go to the documentation of this file.
14 #ifndef ATHENAKERNEL_DATAOBJECTSHAREDPTR_H
15 #define ATHENAKERNEL_DATAOBJECTSHAREDPTR_H
19 #include "GaudiKernel/DataObject.h"
20 #include "boost/intrusive_ptr.hpp"
44 :
public boost::intrusive_ptr<T>
47 typedef boost::intrusive_ptr<T>
Base;
50 :
Base (
p, add_ref) {}
67 return new bucket_t (pObject.get());
74 #endif // not ATHENAKERNEL_DATAOBJECTSHAREDPTR_H
void intrusive_ptr_add_ref(DataObject *o)
DataObjectSharedPtr(const DataObjectSharedPtr &rhs)
convert to and from a SG storable
boost::intrusive_ptr< T > Base
void intrusive_ptr_release(DataObject *o)
DataObjectSharedPtr(std::unique_ptr< T > p, bool add_ref=true)
DataObjectSharedPtr(T *p, bool add_ref=true)
DataObject * asStorable(SG::DataObjectSharedPtr< T > pObject)
DataObjectSharedPtr(const DataObjectSharedPtr< U > &rhs)
Smart pointer to manage DataObject reference counts.
typename std::conditional_t< has_base, deflt, recurse >::type type
DataObjectSharedPtr & operator=(const DataObjectSharedPtr &rhs)=default