Scorum
betting_matcher.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include <stdint.h>
4 #include <vector>
5 
7 
8 namespace fc {
9 class time_point_sec;
10 }
11 
12 namespace scorum {
13 namespace chain {
14 
15 namespace dba {
16 template <typename> class db_accessor;
17 }
18 
19 struct database_virtual_operations_emmiter_i;
20 
21 struct dynamic_global_property_object;
22 struct pending_bet_object;
23 struct matched_bet_object;
24 struct matched_stake_type;
25 
26 using matching_fix_list = std::map<scorum::uuid_type, std::vector<scorum::uuid_type>>;
27 
29 {
30  virtual ~betting_matcher_i();
31 
32  virtual std::vector<std::reference_wrapper<const pending_bet_object>> match(const pending_bet_object& bet1) = 0;
33 };
34 
36  const pending_bet_object& bet1,
37  const pending_bet_object& bet2,
38  const scorum::chain::matched_stake_type& matched,
39  fc::time_point_sec head_block_time);
40 
41 struct matcher;
42 
44 {
45 public:
50 
51  ~betting_matcher() override;
52 
53  std::vector<std::reference_wrapper<const pending_bet_object>> match(const pending_bet_object& bet2) override;
54 
55 private:
56  dba::db_accessor<pending_bet_object>& _pending_bet_dba;
58 
59  const matching_fix_list _bets_matching_fix;
60 
61  std::unique_ptr<matcher> _impl;
62 };
63 }
64 }
betting_matcher(database_virtual_operations_emmiter_i &, dba::db_accessor< pending_bet_object > &, dba::db_accessor< matched_bet_object > &, dba::db_accessor< dynamic_global_property_object > &)
std::vector< std::reference_wrapper< const pending_bet_object > > match(const pending_bet_object &bet2) override
Definition: game.cpp:4
std::map< scorum::uuid_type, std::vector< scorum::uuid_type > > matching_fix_list
int64_t create_matched_bet(dba::db_accessor< matched_bet_object > &matched_bet_dba, const pending_bet_object &bet1, const pending_bet_object &bet2, const matched_stake_type &matched, fc::time_point_sec head_block_time)
Definition: asset.cpp:15
virtual std::vector< std::reference_wrapper< const pending_bet_object > > match(const pending_bet_object &bet1)=0