Policy.hpp
Go to the documentation of this file.
1 // Copyright (c) 2019 Chris Ohk, Youngjoong Kim, SeungHyun Jeon
2 
3 // We are making my contributions/submissions to this project solely in our
4 // personal capacity and are not conveying any rights to any intellectual
5 // property of any third parties.
6 
7 #ifndef ROSETTASTONE_POLICY_HPP
8 #define ROSETTASTONE_POLICY_HPP
9 
12 
13 namespace RosettaStone
14 {
15 class Game;
16 
22 class IPolicy
23 {
24  public:
26  IPolicy() = default;
27 
29  virtual ~IPolicy() = default;
30 
34  virtual TaskMeta Next(const Game& game) = 0;
35 
39  virtual TaskMeta Require(Player& player, TaskID id) = 0;
40 
43  virtual void Notify(const TaskMeta& meta) = 0;
44 };
45 } // namespace RosettaStone
46 
47 #endif // ROSETTASTONE_POLICY_HPP
IPolicy()=default
Default constructor.
TaskMeta class.
Definition: TaskMeta.hpp:97
IPolicy class.
Definition: Policy.hpp:22
Game class.
Definition: Game.hpp:21
virtual ~IPolicy()=default
Default virtual destructor.
virtual void Notify(const TaskMeta &meta)=0
virtual TaskMeta Require(Player &player, TaskID id)=0
virtual TaskMeta Next(const Game &game)=0
Player class.
Definition: Player.hpp:33
Definition: AccountInfo.hpp:14