Electroneum
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cryptonote::bdb_safe_buffer< T > Class Template Reference

#include <db_bdb.h>

Collaboration diagram for cryptonote::bdb_safe_buffer< T >:
Collaboration graph
[legend]

Public Types

typedef T type
 

Public Member Functions

 bdb_safe_buffer (size_t num_buffers, size_t count)
 
 ~bdb_safe_buffer ()
 
T acquire_buffer ()
 
void release_buffer (T buffer)
 
size_t get_buffer_size () const
 
size_t get_buffer_count () const
 

Private Member Functions

void set_count (size_t count)
 

Private Attributes

const size_t MaxAllowedBuffers = 8
 
std::vector< Tm_buffers
 
std::unordered_map< T, size_t > m_buffer_map
 
boost::condition_variable m_cv
 
std::vector< boolm_open_slot
 
size_t m_count
 
boost::mutex m_lock
 
size_t m_buffer_count
 

Member Typedef Documentation

◆ type

template<typename T >
typedef T cryptonote::bdb_safe_buffer< T >::type

Constructor & Destructor Documentation

◆ bdb_safe_buffer()

template<typename T >
cryptonote::bdb_safe_buffer< T >::bdb_safe_buffer ( size_t  num_buffers,
size_t  count 
)
inline

◆ ~bdb_safe_buffer()

template<typename T >
cryptonote::bdb_safe_buffer< T >::~bdb_safe_buffer ( )
inline

Member Function Documentation

◆ acquire_buffer()

template<typename T >
T cryptonote::bdb_safe_buffer< T >::acquire_buffer ( )
inline

◆ get_buffer_count()

template<typename T >
size_t cryptonote::bdb_safe_buffer< T >::get_buffer_count ( ) const
inline

◆ get_buffer_size()

template<typename T >
size_t cryptonote::bdb_safe_buffer< T >::get_buffer_size ( ) const
inline

◆ release_buffer()

template<typename T >
void cryptonote::bdb_safe_buffer< T >::release_buffer ( T  buffer)
inline

◆ set_count()

template<typename T >
void cryptonote::bdb_safe_buffer< T >::set_count ( size_t  count)
inlineprivate

Member Data Documentation

◆ m_buffer_count

template<typename T >
size_t cryptonote::bdb_safe_buffer< T >::m_buffer_count
private

◆ m_buffer_map

template<typename T >
std::unordered_map<T, size_t> cryptonote::bdb_safe_buffer< T >::m_buffer_map
private

◆ m_buffers

template<typename T >
std::vector<T> cryptonote::bdb_safe_buffer< T >::m_buffers
private

◆ m_count

template<typename T >
size_t cryptonote::bdb_safe_buffer< T >::m_count
private

◆ m_cv

template<typename T >
boost::condition_variable cryptonote::bdb_safe_buffer< T >::m_cv
private

◆ m_lock

template<typename T >
boost::mutex cryptonote::bdb_safe_buffer< T >::m_lock
private

◆ m_open_slot

template<typename T >
std::vector<bool> cryptonote::bdb_safe_buffer< T >::m_open_slot
private

◆ MaxAllowedBuffers

template<typename T >
const size_t cryptonote::bdb_safe_buffer< T >::MaxAllowedBuffers = 8
private

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