hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
query.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_SHARED_MODEL_QUERY_HPP
7 #define IROHA_SHARED_MODEL_QUERY_HPP
8 
9 #include <boost/variant/variant_fwd.hpp>
12 
13 namespace shared_model {
14  namespace interface {
15 
16  class GetAccount;
17  class GetBlock;
18  class GetSignatories;
19  class GetAccountTransactions;
20  class GetAccountAssetTransactions;
21  class GetTransactions;
22  class GetAccountAssets;
23  class GetAccountDetail;
24  class GetRoles;
25  class GetRolePermissions;
26  class GetAssetInfo;
27  class GetPendingTransactions;
28  class GetPeers;
29  class GetEngineReceipts;
30 
36  class Query : public Signable<Query> {
37  private:
39  template <typename... Value>
40  using wrap = boost::variant<const Value &...>;
41 
42  public:
44  using QueryVariantType = wrap<GetAccount,
51  GetRoles,
55  GetBlock,
56  GetPeers,
58 
62  virtual const QueryVariantType &get() const = 0;
63 
67  virtual const types::AccountIdType &creatorAccountId() const = 0;
68 
74  virtual types::CounterType queryCounter() const = 0;
75 
76  // ------------------------| Primitive override |-------------------------
77 
78  std::string toString() const override;
79 
80  bool operator==(const ModelType &rhs) const override;
81  };
82  } // namespace interface
83 } // namespace shared_model
84 
85 #endif // IROHA_SHARED_MODEL_QUERY_HPP
Definition: get_pending_transactions.hpp:21
virtual const types::AccountIdType & creatorAccountId() const =0
Definition: get_asset_info.hpp:17
Definition: query.hpp:36
Definition: get_transactions.hpp:14
Definition: signable.hpp:31
Query ModelType
Definition: model_primitive.hpp:27
Definition: get_account_asset_transactions.hpp:21
std::string toString() const override
Definition: query.cpp:38
Definition: get_signatories.hpp:18
Definition: get_account_transactions.hpp:21
virtual types::CounterType queryCounter() const =0
std::string AccountIdType
Type of account id.
Definition: types.hpp:38
wrap< GetAccount, GetSignatories, GetAccountTransactions, GetAccountAssetTransactions, GetTransactions, GetAccountAssets, GetAccountDetail, GetRoles, GetRolePermissions, GetAssetInfo, GetPendingTransactions, GetBlock, GetPeers, GetEngineReceipts > QueryVariantType
Type of variant, that handle concrete query.
Definition: query.hpp:57
Definition: get_roles.hpp:17
Definition: get_peers.hpp:17
Definition: get_account_detail.hpp:29
Definition: get_account.hpp:14
Definition: get_engine_receipts.hpp:17
Definition: get_block.hpp:14
uint64_t CounterType
Type of counter.
Definition: types.hpp:71
Definition: get_role_permissions.hpp:18
Definition: command_executor.hpp:13
bool operator==(const ModelType &rhs) const override
Definition: query.cpp:48
Definition: get_account_assets.hpp:20