Scorum
Public Types | Public Member Functions | List of all members
scorum::chain::dba::db_accessor< TObject > Class Template Reference

#include <db_accessor.hpp>

Public Types

using object_type = TObject
 
using modifier_type = utils::function_view< void(object_type &)>
 
using predicate_type = utils::function_view< bool(const object_type &)>
 
using object_cref_type = std::reference_wrapper< const TObject >
 

Public Member Functions

 db_accessor (db_index &db_idx)
 
size_t size () const
 
const object_typecreate (modifier_type modifier)
 
const object_typeupdate (modifier_type modifier)
 
const object_typeupdate (const object_type &o, modifier_type modifier)
 
void remove ()
 
void remove (const object_type &o)
 
void remove_all (utils::bidir_range< const object_type > items)
 
bool is_empty () const
 
const object_typeget () const
 
template<class IndexBy , class Key >
const object_typeget_by (const Key &arg) const
 
template<class IndexBy , class Key >
const object_typefind_by (const Key &arg) const
 
template<class IndexBy , class Key >
bool is_exists_by (const Key &arg) const
 
template<typename IndexBy , typename TKey >
utils::bidir_range< const object_typeget_range_by (const TKey &key) const
 
template<typename IndexBy , typename TKeyLhs , typename TKeyRhs = TKeyLhs>
utils::bidir_range< const object_typeget_range_by (const detail::bound< TKeyLhs > &lower, const detail::bound< TKeyRhs > &upper) const
 
template<typename IndexBy , typename TKey >
utils::bidir_range< const object_typeget_range_by (unbounded_placeholder lower, const detail::bound< TKey > &upper) const
 
template<typename IndexBy , typename TKey >
utils::bidir_range< const object_typeget_range_by (const detail::bound< TKey > &lower, unbounded_placeholder upper) const
 
template<typename IndexBy , typename TKey = index_key_type<TObject, IndexBy>>
utils::bidir_range< const object_typeget_range_by (unbounded_placeholder lower, unbounded_placeholder upper) const
 
template<typename IndexBy >
utils::bidir_range< const object_typeget_all_by () const
 

Detailed Description

template<typename TObject>
class scorum::chain::dba::db_accessor< TObject >

Definition at line 177 of file db_accessor.hpp.

Member Typedef Documentation

◆ modifier_type

template<typename TObject >
using scorum::chain::dba::db_accessor< TObject >::modifier_type = utils::function_view<void(object_type&)>

Definition at line 187 of file db_accessor.hpp.

◆ object_cref_type

template<typename TObject >
using scorum::chain::dba::db_accessor< TObject >::object_cref_type = std::reference_wrapper<const TObject>

Definition at line 189 of file db_accessor.hpp.

◆ object_type

template<typename TObject >
using scorum::chain::dba::db_accessor< TObject >::object_type = TObject

Definition at line 186 of file db_accessor.hpp.

◆ predicate_type

template<typename TObject >
using scorum::chain::dba::db_accessor< TObject >::predicate_type = utils::function_view<bool(const object_type&)>

Definition at line 188 of file db_accessor.hpp.

Constructor & Destructor Documentation

◆ db_accessor()

template<typename TObject >
scorum::chain::dba::db_accessor< TObject >::db_accessor ( db_index db_idx)
inlineexplicit

Definition at line 180 of file db_accessor.hpp.

Member Function Documentation

◆ create()

template<typename TObject >
const object_type& scorum::chain::dba::db_accessor< TObject >::create ( modifier_type  modifier)
inline

Definition at line 196 of file db_accessor.hpp.

◆ find_by()

template<typename TObject >
template<class IndexBy , class Key >
const object_type* scorum::chain::dba::db_accessor< TObject >::find_by ( const Key &  arg) const
inline

Definition at line 241 of file db_accessor.hpp.

◆ get()

template<typename TObject >
const object_type& scorum::chain::dba::db_accessor< TObject >::get ( ) const
inline

Definition at line 231 of file db_accessor.hpp.

◆ get_all_by()

template<typename TObject >
template<typename IndexBy >
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_all_by ( ) const
inline

Definition at line 286 of file db_accessor.hpp.

◆ get_by()

template<typename TObject >
template<class IndexBy , class Key >
const object_type& scorum::chain::dba::db_accessor< TObject >::get_by ( const Key &  arg) const
inline

Definition at line 236 of file db_accessor.hpp.

◆ get_range_by() [1/5]

template<typename TObject >
template<typename IndexBy , typename TKey >
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_range_by ( const detail::bound< TKey > &  lower,
unbounded_placeholder  upper 
) const
inline

Definition at line 274 of file db_accessor.hpp.

◆ get_range_by() [2/5]

template<typename TObject >
template<typename IndexBy , typename TKeyLhs , typename TKeyRhs = TKeyLhs>
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_range_by ( const detail::bound< TKeyLhs > &  lower,
const detail::bound< TKeyRhs > &  upper 
) const
inline

Definition at line 260 of file db_accessor.hpp.

◆ get_range_by() [3/5]

template<typename TObject >
template<typename IndexBy , typename TKey >
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_range_by ( const TKey &  key) const
inline

Definition at line 254 of file db_accessor.hpp.

◆ get_range_by() [4/5]

template<typename TObject >
template<typename IndexBy , typename TKey >
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_range_by ( unbounded_placeholder  lower,
const detail::bound< TKey > &  upper 
) const
inline

Definition at line 267 of file db_accessor.hpp.

◆ get_range_by() [5/5]

template<typename TObject >
template<typename IndexBy , typename TKey = index_key_type<TObject, IndexBy>>
utils::bidir_range<const object_type> scorum::chain::dba::db_accessor< TObject >::get_range_by ( unbounded_placeholder  lower,
unbounded_placeholder  upper 
) const
inline

Definition at line 281 of file db_accessor.hpp.

◆ is_empty()

template<typename TObject >
bool scorum::chain::dba::db_accessor< TObject >::is_empty ( ) const
inline

Definition at line 226 of file db_accessor.hpp.

◆ is_exists_by()

template<typename TObject >
template<class IndexBy , class Key >
bool scorum::chain::dba::db_accessor< TObject >::is_exists_by ( const Key &  arg) const
inline

Definition at line 246 of file db_accessor.hpp.

◆ remove() [1/2]

template<typename TObject >
void scorum::chain::dba::db_accessor< TObject >::remove ( )
inline

Definition at line 211 of file db_accessor.hpp.

◆ remove() [2/2]

template<typename TObject >
void scorum::chain::dba::db_accessor< TObject >::remove ( const object_type o)
inline

Definition at line 216 of file db_accessor.hpp.

◆ remove_all()

template<typename TObject >
void scorum::chain::dba::db_accessor< TObject >::remove_all ( utils::bidir_range< const object_type items)
inline

Definition at line 221 of file db_accessor.hpp.

◆ size()

template<typename TObject >
size_t scorum::chain::dba::db_accessor< TObject >::size ( ) const
inline

Definition at line 191 of file db_accessor.hpp.

◆ update() [1/2]

template<typename TObject >
const object_type& scorum::chain::dba::db_accessor< TObject >::update ( const object_type o,
modifier_type  modifier 
)
inline

Definition at line 206 of file db_accessor.hpp.

◆ update() [2/2]

template<typename TObject >
const object_type& scorum::chain::dba::db_accessor< TObject >::update ( modifier_type  modifier)
inline

Definition at line 201 of file db_accessor.hpp.


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