The Gaudi Framework  v30r3 (a5ef0a68)
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

Definition at line 590 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 593 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 592 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 597 of file Counters.h.

597 : base_type(), m_prime( p ) {}
ContainedAccumulator< Arithmetic, atomicity::none > base_type
Definition: Counters.h:593
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 600 of file Counters.h.

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

Definition at line 602 of file Counters.h.

602 { 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 601 of file Counters.h.

601 { 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 604 of file Counters.h.


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