Scorum
libraries
chain
dba
db_accessor_factory.cpp
Go to the documentation of this file.
1
#include <
scorum/chain/dba/db_accessor_factory.hpp
>
2
#include <
scorum/chain/dba/db_accessor.hpp
>
3
4
#include <
scorum/chain/schema/game_object.hpp
>
5
#include <
scorum/chain/schema/proposal_object.hpp
>
6
#include <
scorum/chain/schema/betting_property_object.hpp
>
7
#include <
scorum/chain/schema/bet_objects.hpp
>
8
#include <
scorum/chain/schema/registration_objects.hpp
>
9
#include <
scorum/chain/schema/chain_property_object.hpp
>
10
#include <
scorum/chain/schema/dynamic_global_property_object.hpp
>
11
#include <
scorum/chain/schema/account_objects.hpp
>
12
#include <
scorum/chain/schema/comment_objects.hpp
>
13
#include <
scorum/chain/schema/nft_object.hpp
>
14
15
// clang-format off
16
#define DB_TYPES \
17
(game_object) \
18
(game_uuid_history_object) \
19
(proposal_object) \
20
(betting_property_object) \
21
(pending_bet_object) \
22
(matched_bet_object) \
23
(bet_uuid_history_object) \
24
(registration_pool_object) \
25
(registration_committee_member_object) \
26
(reg_pool_sp_delegation_object) \
27
(chain_property_object) \
28
(dynamic_global_property_object) \
29
(account_object) \
30
(comment_object) \
31
(nft_object) \
32
(game_round_object)
33
// clang-format on
34
35
#define INSTANTIATE_DBA_FACTORY_METHODS(_1, _2, TYPE) \
36
template db_accessor<TYPE>& db_accessor_factory::get_dba<TYPE>() const;
37
38
namespace
scorum
{
39
namespace
chain {
40
namespace
dba {
41
42
db_accessor_factory::db_accessor_factory
(
db_index
& db)
43
: _db(db)
44
{
45
}
46
47
template
<
typename
TObject>
db_accessor<TObject>
&
db_accessor_factory::get_dba
()
const
48
{
49
auto
it =
_db_accessors
.emplace(boost::typeindex::type_id<TObject>(),
db_accessor<TObject>
{
_db
}).first;
50
51
return
boost::any_cast<db_accessor<TObject>&>(it->second);
52
}
53
54
BOOST_PP_SEQ_FOR_EACH(
INSTANTIATE_DBA_FACTORY_METHODS
, ,
DB_TYPES
)
55
}
// namespace dba
56
}
// namespace chain
57
}
// namespace scorum
account_objects.hpp
bet_objects.hpp
betting_property_object.hpp
chain_property_object.hpp
chainbase::database_index
Definition:
dba.hpp:5
scorum::chain::dba::db_accessor
Definition:
db_accessor.hpp:178
comment_objects.hpp
db_accessor.hpp
INSTANTIATE_DBA_FACTORY_METHODS
#define INSTANTIATE_DBA_FACTORY_METHODS(_1, _2, TYPE)
Definition:
db_accessor_factory.cpp:35
DB_TYPES
#define DB_TYPES
Definition:
db_accessor_factory.cpp:16
db_accessor_factory.hpp
dynamic_global_property_object.hpp
game_object.hpp
scorum
Definition:
asset.cpp:15
nft_object.hpp
proposal_object.hpp
registration_objects.hpp
scorum::chain::dba::db_accessor_factory::_db_accessors
boost::container::flat_map< boost::typeindex::type_index, boost::any > _db_accessors
Definition:
db_accessor_factory.hpp:22
scorum::chain::dba::db_accessor_factory::get_dba
db_accessor< TObject > & get_dba() const
Definition:
db_accessor_factory.cpp:47
scorum::chain::dba::db_accessor_factory::_db
db_index & _db
Definition:
db_accessor_factory.hpp:23
scorum::chain::dba::db_accessor_factory::db_accessor_factory
db_accessor_factory(db_index &db)
Definition:
db_accessor_factory.cpp:42
Generated on Thu Jun 9 2022 13:04:24 for Scorum by
1.9.1