The Gaudi Framework  v31r0 (aeb156f0)
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator > Class Template Reference

Buffer is a non atomic Accumulator which, when it goes out-of-scope, updates the underlying thread-safe Accumulator for all previous updates in one go. More...

#include <GaudiKernel/Counters.h>

Inheritance diagram for Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >:
Collaboration diagram for Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >:

Public Member Functions

 Buffer ()=delete
 
 Buffer (prime_type &p)
 
 Buffer (const Buffer &)=delete
 
void operator= (const Buffer &)=delete
 
 Buffer (Buffer &&other)
 
void push ()
 
 ~Buffer ()
 

Private Types

using prime_type = ContainedAccumulator< Arithmetic, atomicity::full >
 
using base_type = ContainedAccumulator< Arithmetic, atomicity::none >
 

Private Attributes

prime_typem_prime
 

Detailed Description

template<typename Arithmetic, template< typename Int, atomicity Ato > class ContainedAccumulator>
class Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >

Buffer is a non atomic Accumulator which, when it goes out-of-scope, updates the underlying thread-safe Accumulator for all previous updates in one go.

It is templated by the basic accumulator type and has same interface

See also
Gaudi::Accumulators for detailed documentation

Definition at line 598 of file Counters.h.

Member Typedef Documentation

template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
using Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::base_type = ContainedAccumulator<Arithmetic, atomicity::none>
private

Definition at line 600 of file Counters.h.

template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
using Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::prime_type = ContainedAccumulator<Arithmetic, atomicity::full>
private

Definition at line 599 of file Counters.h.

Constructor & Destructor Documentation

template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::Buffer ( )
delete
template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::Buffer ( prime_type p)
inline

Definition at line 604 of file Counters.h.

604 : base_type(), m_prime( p ) {}
ContainedAccumulator< Arithmetic, atomicity::none > base_type
Definition: Counters.h:600
template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::Buffer ( const Buffer< Arithmetic, ContainedAccumulator > &  )
delete
template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::Buffer ( Buffer< Arithmetic, ContainedAccumulator > &&  other)
inline

Definition at line 607 of file Counters.h.

607 : base_type( other ), m_prime( other.m_prime ) { other.reset(); }
ContainedAccumulator< Arithmetic, atomicity::none > base_type
Definition: Counters.h:600
template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::~Buffer ( )
inline

Definition at line 609 of file Counters.h.

609 { push(); }

Member Function Documentation

template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
void Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::operator= ( const Buffer< Arithmetic, ContainedAccumulator > &  )
delete
template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
void Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::push ( )
inline

Definition at line 608 of file Counters.h.

608 { m_prime.mergeAndReset( static_cast<base_type&&>( *this ) ); }

Member Data Documentation

template<typename Arithmetic , template< typename Int, atomicity Ato > class ContainedAccumulator>
prime_type& Gaudi::Accumulators::Buffer< Arithmetic, ContainedAccumulator >::m_prime
private

Definition at line 612 of file Counters.h.


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