Wire Sysio Wire Sysion 1.0.0
Loading...
Searching...
No Matches
chainbase.hpp File Reference
#include <boost/interprocess/managed_mapped_file.hpp>
#include <boost/interprocess/containers/map.hpp>
#include <boost/interprocess/containers/set.hpp>
#include <boost/interprocess/containers/flat_map.hpp>
#include <boost/interprocess/containers/deque.hpp>
#include <boost/interprocess/containers/string.hpp>
#include <boost/interprocess/allocators/allocator.hpp>
#include <boost/interprocess/sync/interprocess_sharable_mutex.hpp>
#include <boost/interprocess/sync/sharable_lock.hpp>
#include <boost/core/demangle.hpp>
#include <boost/multi_index_container.hpp>
#include <boost/chrono.hpp>
#include <boost/config.hpp>
#include <boost/filesystem.hpp>
#include <boost/lexical_cast.hpp>
#include <boost/throw_exception.hpp>
#include <array>
#include <atomic>
#include <fstream>
#include <iostream>
#include <stdexcept>
#include <typeindex>
#include <typeinfo>
#include <set>
#include <chainbase/pinnable_mapped_file.hpp>
#include <chainbase/shared_cow_string.hpp>
#include <chainbase/chainbase_node_allocator.hpp>
#include <chainbase/undo_index.hpp>
Include dependency graph for chainbase.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  chainbase::oid< T >
 
struct  chainbase::object< TypeNumber, Derived >
 
struct  chainbase::get_index_type< T >
 
class  chainbase::int_incrementer
 
class  chainbase::abstract_session
 
class  chainbase::session_impl< SessionType >
 
class  chainbase::abstract_index
 
class  chainbase::index_impl< BaseIndex >
 
class  chainbase::index< IndexType >
 
class  chainbase::read_write_mutex_manager
 
class  chainbase::database
 
struct  chainbase::database::session
 

Namespaces

namespace  chainbase
 

Macros

#define CHAINBASE_NUM_RW_LOCKS   10
 
#define CHAINBASE_REQUIRE_READ_LOCK(m, t)
 
#define CHAINBASE_REQUIRE_WRITE_LOCK(m, t)
 
#define CHAINBASE_SET_INDEX_TYPE(OBJECT_TYPE, INDEX_TYPE)
 
#define CHAINBASE_DEFAULT_CONSTRUCTOR(OBJECT_TYPE)
 

Typedefs

template<typename T >
using chainbase::allocator = bip::allocator<T, pinnable_mapped_file::segment_manager>
 
template<typename T >
using chainbase::node_allocator = chainbase_node_allocator<T, pinnable_mapped_file::segment_manager>
 
using chainbase::shared_string = shared_cow_string
 
typedef boost::interprocess::interprocess_sharable_mutex chainbase::read_write_mutex
 
typedef boost::interprocess::sharable_lock< read_write_mutexchainbase::read_lock
 
template<typename MultiIndexType >
using chainbase::generic_index = multi_index_to_undo_index<MultiIndexType>
 
template<typename Object , typename... Args>
using chainbase::shared_multi_index_container = boost::multi_index_container<Object,Args..., chainbase::node_allocator<Object> >
 

Macro Definition Documentation

◆ CHAINBASE_DEFAULT_CONSTRUCTOR

#define CHAINBASE_DEFAULT_CONSTRUCTOR ( OBJECT_TYPE)
Value:
OBJECT_TYPE( Constructor&& c, Allocator&& ) { c(*this); }
Concept for allocating, resizing and freeing memory block.
yubihsm_pkcs11_object_template template

Definition at line 108 of file chainbase.hpp.

108 #define CHAINBASE_DEFAULT_CONSTRUCTOR( OBJECT_TYPE ) \
109 template<typename Constructor, typename Allocator> \
110 OBJECT_TYPE( Constructor&& c, Allocator&& ) { c(*this); }

◆ CHAINBASE_NUM_RW_LOCKS

#define CHAINBASE_NUM_RW_LOCKS   10

Definition at line 37 of file chainbase.hpp.

◆ CHAINBASE_REQUIRE_READ_LOCK

#define CHAINBASE_REQUIRE_READ_LOCK ( m,
t )

Definition at line 44 of file chainbase.hpp.

◆ CHAINBASE_REQUIRE_WRITE_LOCK

#define CHAINBASE_REQUIRE_WRITE_LOCK ( m,
t )

Definition at line 45 of file chainbase.hpp.

◆ CHAINBASE_SET_INDEX_TYPE

#define CHAINBASE_SET_INDEX_TYPE ( OBJECT_TYPE,
INDEX_TYPE )
Value:
namespace chainbase { template<> struct get_index_type<OBJECT_TYPE> { typedef INDEX_TYPE type; }; }
yh_object_type type
Definition yubihsm.h:672

This macro must be used at global scope and OBJECT_TYPE and INDEX_TYPE must be fully qualified

Definition at line 105 of file chainbase.hpp.

105 #define CHAINBASE_SET_INDEX_TYPE( OBJECT_TYPE, INDEX_TYPE ) \
106 namespace chainbase { template<> struct get_index_type<OBJECT_TYPE> { typedef INDEX_TYPE type; }; }