|
ATLAS Offline Software
|
Go to the documentation of this file.
15 #ifndef ATHENAKERNEL_RECYCLABLEDATAOBJECT_H
16 #define ATHENAKERNEL_RECYCLABLEDATAOBJECT_H
22 # pragma GCC diagnostic push
23 # pragma GCC diagnostic ignored "-Wpedantic"
25 #include "tbb/concurrent_queue.h"
27 # pragma GCC diagnostic pop
91 typedef tbb::concurrent_queue<DOBJ*>
queue_t;
99 template <
typename... ARGS>
124 template <
class DOBJ>
142 template <
typename... ARGS>
167 #endif // not ATHENAKERNEL_RECYCLABLEDATAOBJECT_H
tbb::concurrent_queue< DOBJ * > queue_t
Underlying queue type holding these objects.
Holder for recyclable objects.
RecyclableDataObject< DOBJ >::queue_t queue_t
Underlying queue type holding these objects.
~RecyclableDataQueue()
Destructor.
DOBJ * get(ARGS &&... args)
Get an object, either a new one or one recycled from a previous event.
Some weak symbol referencing magic...
RecyclableDataQueue()
Constructor.
std::shared_ptr< queue_t > m_queue
Shared reference to the actual queue.
virtual unsigned long release() override
DataObject release method.
Helper for recycling objects from event to event.
RecyclableDataObject(std::shared_ptr< queue_t > queue, ARGS &&... args)
Constructor.
std::shared_ptr< queue_t > m_queue
The queue on which this object will be placed when it is recycled.