Scorum
proposal_executor.hpp
Go to the documentation of this file.
1 #pragma once
2 
6 
7 namespace scorum {
8 namespace chain {
9 
10 struct data_service_factory_i;
11 struct proposal_service_i;
12 class proposal_object;
13 
15 {
16  virtual void operator()(const proposal_object& proposal) = 0;
17 };
18 
20 {
21  friend class dbservice_dbs_factory;
22 
23 public:
24  explicit dbs_proposal_executor(database& s);
25 
26  void operator()(const proposal_object& proposal) override;
27 
28 private:
29  void execute_proposal(const proposal_object& proposal);
30  void update_proposals_voting_list_and_execute();
31  bool is_quorum(const proposal_object& proposal);
32 
33  data_service_factory_i& services;
34  proposal_service_i& proposal_service;
36  fc::flat_set<account_name_type> removed_members;
37  // TODO: tech dept: remove this dependency if possible
38  database& _db;
39 };
40 
41 } // namespace scorum
42 } // namespace chain
tracks the blockchain state in an extensible manner
Definition: database.hpp:52
void operator()(const proposal_object &proposal) override
bool is_quorum(size_t votes, size_t members_count, size_t quorum)
signed_transaction proposal(const std::string &initiator, uint32_t lifetime_sec, C &&constructor)
Definition: wallet.cpp:2754
Definition: asset.cpp:15
virtual void operator()(const proposal_object &proposal)=0