hyperledger/iroha
Iroha - A simple, decentralized ledger http://iroha.tech
command.hpp
Go to the documentation of this file.
1 
6 #ifndef IROHA_SHARED_MODEL_COMMAND_HPP
7 #define IROHA_SHARED_MODEL_COMMAND_HPP
8 
10 
11 #include <boost/variant/variant_fwd.hpp>
12 
13 namespace shared_model {
14  namespace interface {
15 
16  class AddAssetQuantity;
17  class AddPeer;
18  class AddSignatory;
19  class AppendRole;
20  class CallEngine;
21  class CreateAccount;
22  class CreateAsset;
23  class CreateDomain;
24  class CreateRole;
25  class DetachRole;
26  class GrantPermission;
27  class RemovePeer;
28  class RemoveSignatory;
29  class RevokePermission;
30  class SetAccountDetail;
31  class SetQuorum;
32  class SubtractAssetQuantity;
33  class TransferAsset;
34  class CompareAndSetAccountDetail;
35  class SetSettingValue;
36 
41  class Command : public ModelPrimitive<Command> {
42  private:
44  template <typename... Value>
45  using wrap = boost::variant<const Value &...>;
46 
47  public:
50  AddPeer,
52  AppendRole,
53  CallEngine,
58  CreateRole,
59  DetachRole,
61  RemovePeer,
65  SetQuorum,
69 
73  virtual const CommandVariantType &get() const = 0;
74 
75  // ------------------------| Primitive override |-------------------------
76 
77  std::string toString() const override;
78 
79  bool operator==(const ModelType &rhs) const override;
80  };
81 
82  } // namespace interface
83 } // namespace shared_model
84 
85 #endif // IROHA_SHARED_MODEL_COMMAND_HPP
Definition: compare_and_set_account_detail.hpp:21
Definition: add_signatory.hpp:19
Definition: set_quorum.hpp:18
Command ModelType
Definition: model_primitive.hpp:27
Definition: subtract_asset_quantity.hpp:20
Definition: set_setting_value.hpp:19
Definition: detach_role.hpp:19
Definition: remove_signatory.hpp:18
Definition: create_asset.hpp:18
Definition: call_engine.hpp:20
bool operator==(const ModelType &rhs) const override
Definition: command.cpp:47
Definition: remove_peer.hpp:19
Definition: append_role.hpp:19
Definition: transfer_asset.hpp:19
Definition: create_domain.hpp:18
Definition: create_account.hpp:19
std::string toString() const override
Definition: command.cpp:43
Definition: grant_permission.hpp:19
Definition: set_account_detail.hpp:19
wrap< AddAssetQuantity, AddPeer, AddSignatory, AppendRole, CallEngine, CompareAndSetAccountDetail, CreateAccount, CreateAsset, CreateDomain, CreateRole, DetachRole, GrantPermission, RemovePeer, RemoveSignatory, RevokePermission, SetAccountDetail, SetQuorum, SetSettingValue, SubtractAssetQuantity, TransferAsset > CommandVariantType
Type of variant, that handle concrete command.
Definition: command.hpp:68
Definition: revoke_permission.hpp:19
Definition: model_primitive.hpp:22
Definition: command.hpp:41
Definition: add_asset_quantity.hpp:20
Definition: create_role.hpp:19
Definition: command_executor.hpp:12
Definition: add_peer.hpp:20