Scorum
process_games_startup.cpp
Go to the documentation of this file.
2 
3 #include <boost/range/adaptor/filtered.hpp>
4 
6 
10 
11 namespace scorum {
12 namespace chain {
13 namespace database_ns {
14 
17  : _betting_svc(betting_service)
18  , _virt_op_emitter(virt_op_emitter)
19 {
20 }
21 
23 {
24  using namespace boost::adaptors;
25  debug_log(ctx.get_block_info(), "process_games_startup BEGIN");
26 
27  auto& dprops_service = ctx.services().dynamic_global_property_service();
28  auto& game_service = ctx.services().game_service();
29 
30  auto games = game_service.get_games(dprops_service.head_block_time());
31  for (const auto& game : filter(games, [](const auto& g) { return g.get().status == game_status::created; }))
32  {
33  game_service.update(game, [](game_object& o) { o.status = game_status::started; });
34 
35  _betting_svc.cancel_pending_bets(game.get().uuid, pending_bet_kind::non_live);
36 
37  _virt_op_emitter.push_virtual_operation(
38  game_status_changed_operation(game.get().uuid, game_status::created, game_status::started));
39  }
40 
41  debug_log(ctx.get_block_info(), "process_games_startup END");
42 }
43 }
44 }
45 }
data_service_factory_i & services() const
Definition: block_tasks.hpp:25
#define debug_log(CTX, FORMAT,...)
Definition: debug_log.hpp:3
Definition: asset.cpp:15
process_games_startup(betting_service_i &, database_virtual_operations_emmiter_i &)