Botan  2.13.0
Crypto and TLS for C++11
Public Member Functions | List of all members
Botan::Atomic< T > Class Template Referencefinal

#include <atomic.h>

Public Member Functions

 Atomic ()=default
 
 Atomic (const Atomic &data)
 
 Atomic (const std::atomic< T > &data)
 
 operator std::atomic< T > & ()
 
 operator T ()
 
Atomicoperator= (const Atomic &a)
 
Atomicoperator= (const std::atomic< T > &a)
 
 ~Atomic ()=default
 

Detailed Description

template<typename T>
class Botan::Atomic< T >

Simple helper class to expand std::atomic with copy constructor and copy assignment operator, i.e. for use as element in a container like std::vector. The construction of instances of this wrapper is NOT atomic and needs to be properly guarded.

Definition at line 26 of file atomic.h.

Constructor & Destructor Documentation

◆ Atomic() [1/3]

template<typename T >
Botan::Atomic< T >::Atomic ( )
default

◆ Atomic() [2/3]

template<typename T >
Botan::Atomic< T >::Atomic ( const Atomic< T > &  data)
inline

Definition at line 30 of file atomic.h.

30 : m_data(data.m_data.load()) {}

◆ Atomic() [3/3]

template<typename T >
Botan::Atomic< T >::Atomic ( const std::atomic< T > &  data)
inline

Definition at line 31 of file atomic.h.

31 : m_data(data.load()) {}

◆ ~Atomic()

template<typename T >
Botan::Atomic< T >::~Atomic ( )
default

Member Function Documentation

◆ operator std::atomic< T > &()

template<typename T >
Botan::Atomic< T >::operator std::atomic< T > & ( )
inline

Definition at line 46 of file atomic.h.

46 { return m_data; }

◆ operator T()

template<typename T >
Botan::Atomic< T >::operator T ( )
inline

Definition at line 47 of file atomic.h.

47 { return m_data.load(); }

◆ operator=() [1/2]

template<typename T >
Atomic& Botan::Atomic< T >::operator= ( const Atomic< T > &  a)
inline

Definition at line 34 of file atomic.h.

35  {
36  m_data.store(a.m_data.load());
37  return *this;
38  }

◆ operator=() [2/2]

template<typename T >
Atomic& Botan::Atomic< T >::operator= ( const std::atomic< T > &  a)
inline

Definition at line 40 of file atomic.h.

41  {
42  m_data.store(a.load());
43  return *this;
44  }

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