Scorum
proposal.hpp
Go to the documentation of this file.
1 #pragma once
2 
5 
6 namespace scorum {
7 namespace chain {
8 
9 struct proposal_service_i : public base_service_i<proposal_object>
10 {
13 
14  virtual const proposal_object& create_proposal(const account_name_type& creator,
16  const fc::time_point_sec& expiration,
17  uint64_t quorum)
18  = 0;
19 
20  virtual bool is_exists(proposal_id_type proposal_id) = 0;
21 
22  virtual const proposal_object& get(proposal_id_type proposal_id) = 0;
23 
24  virtual void vote_for(const account_name_type& voter, const proposal_object& proposal) = 0;
25 
26  virtual size_t get_votes(const proposal_object& proposal) = 0;
27 
28  virtual bool is_expired(const proposal_object& proposal) = 0;
29 
30  virtual void clear_expired_proposals() = 0;
31 
33 
34  using proposal_refs_type = std::vector<proposal_object::cref_type>;
35 
37 };
38 
39 class dbs_proposal : public dbs_service_base<proposal_service_i>
40 {
41  friend class dbservice_dbs_factory;
42 
43 protected:
44  explicit dbs_proposal(database& db);
45 
46 public:
49 
50  virtual const proposal_object& create_proposal(const account_name_type& creator,
52  const fc::time_point_sec& expiration,
53  uint64_t quorum) override;
54 
55  bool is_exists(proposal_id_type proposal_id) override;
56 
57  const proposal_object& get(proposal_id_type proposal_id) override;
58 
59  void vote_for(const account_name_type& voter, const proposal_object& proposal) override;
60 
61  size_t get_votes(const proposal_object& proposal) override;
62 
63  bool is_expired(const proposal_object& proposal) override;
64 
65  void clear_expired_proposals() override;
66 
68 
70 };
71 
72 } // namespace scorum
73 } // namespace chain
tracks the blockchain state in an extensible manner
Definition: database.hpp:52
void clear_expired_proposals() override
Definition: proposal.cpp:51
proposal_refs_type get_proposals() override
Definition: proposal.cpp:79
virtual const proposal_object & create_proposal(const account_name_type &creator, const protocol::proposal_operation &operation, const fc::time_point_sec &expiration, uint64_t quorum) override
Definition: proposal.cpp:12
size_t get_votes(const proposal_object &proposal) override
Definition: proposal.cpp:41
void vote_for(const account_name_type &voter, const proposal_object &proposal) override
Definition: proposal.cpp:36
bool is_expired(const proposal_object &proposal) override
Definition: proposal.cpp:46
dbs_proposal(database &db)
Definition: proposal.cpp:7
void for_all_proposals_remove_from_voting_list(const account_name_type &member) override
Definition: proposal.cpp:61
virtual const object_type & get() const override
fc::static_variant< vote_operation, comment_operation, transfer_operation, transfer_to_scorumpower_operation, withdraw_scorumpower_operation, account_create_by_committee_operation, account_create_operation, account_create_with_delegation_operation, account_update_operation, witness_update_operation, account_witness_vote_operation, account_witness_proxy_operation, delete_comment_operation, comment_options_operation, set_withdraw_scorumpower_route_to_account_operation, set_withdraw_scorumpower_route_to_dev_pool_operation, prove_authority_operation, request_account_recovery_operation, recover_account_operation, change_recovery_account_operation, escrow_approve_operation, escrow_dispute_operation, escrow_release_operation, escrow_transfer_operation, decline_voting_rights_operation, delegate_scorumpower_operation, create_budget_operation, close_budget_operation, proposal_vote_operation, proposal_create_operation, atomicswap_initiate_operation, atomicswap_redeem_operation, atomicswap_refund_operation, close_budget_by_advertising_moderator_operation, update_budget_operation, create_game_operation, cancel_game_operation, update_game_markets_operation, update_game_start_time_operation, post_game_results_operation, post_bet_operation, cancel_pending_bets_operation, delegate_sp_from_reg_pool_operation, create_nft_operation, update_nft_meta_operation, create_game_round_operation, update_game_round_result_operation, adjust_nft_experience_operation, update_nft_name_operation, author_reward_operation, comment_benefficiary_reward_operation, comment_payout_update_operation, comment_reward_operation, curation_reward_operation, hardfork_operation, producer_reward_operation, active_sp_holders_reward_operation, return_scorumpower_delegation_operation, shutdown_witness_operation, witness_miss_block_operation, expired_contract_refund_operation, acc_finished_vesting_withdraw_operation, devpool_finished_vesting_withdraw_operation, acc_to_acc_vesting_withdraw_operation, devpool_to_acc_vesting_withdraw_operation, acc_to_devpool_vesting_withdraw_operation, devpool_to_devpool_vesting_withdraw_operation, proposal_virtual_operation, budget_outgo_operation, budget_owner_income_operation, active_sp_holders_reward_legacy_operation, budget_closing_operation, bets_matched_operation, game_status_changed_operation, bet_resolved_operation, bet_cancelled_operation, bet_restored_operation, bet_updated_operation > operation
Definition: operations.hpp:112
fc::fixed_string_16 account_name_type
Definition: types.hpp:62
fc::static_variant< registration_committee_add_member_operation, registration_committee_exclude_member_operation, registration_committee_change_quorum_operation, development_committee_add_member_operation, development_committee_exclude_member_operation, development_committee_change_quorum_operation, development_committee_withdraw_vesting_operation, development_committee_transfer_operation, development_committee_empower_advertising_moderator_operation, development_committee_change_post_budgets_auction_properties_operation, development_committee_change_banner_budgets_auction_properties_operation, development_committee_empower_betting_moderator_operation, development_committee_change_betting_resolve_delay_operation > proposal_operation
signed_transaction proposal(const std::string &initiator, uint32_t lifetime_sec, C &&constructor)
Definition: wallet.cpp:2754
Definition: asset.cpp:15
virtual const proposal_object & create_proposal(const account_name_type &creator, const protocol::proposal_operation &operation, const fc::time_point_sec &expiration, uint64_t quorum)=0
virtual void for_all_proposals_remove_from_voting_list(const account_name_type &member)=0
virtual void vote_for(const account_name_type &voter, const proposal_object &proposal)=0
virtual void clear_expired_proposals()=0
std::vector< proposal_object::cref_type > proposal_refs_type
Definition: proposal.hpp:34
virtual size_t get_votes(const proposal_object &proposal)=0
virtual bool is_exists(proposal_id_type proposal_id)=0
virtual proposal_refs_type get_proposals()=0
virtual bool is_expired(const proposal_object &proposal)=0
virtual const proposal_object & get(proposal_id_type proposal_id)=0