IoPolicy.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_IO_POLICY_HPP
8 #define ROSETTASTONE_IO_POLICY_HPP
9 
11 
12 #include <iostream>
13 
14 namespace RosettaStone
15 {
21 class IoPolicy : public BasicPolicy
22 {
23  public:
27  IoPolicy(std::ostream& out, std::istream& in);
28 
29  private:
31  TaskMeta RequireMulligan(Player& player) override;
32 
34  TaskMeta RequirePlayCard(Player& player) override;
35 
37  TaskMeta RequireAttack(Player& player) override;
38 
40  void NotifyOverDraw(const TaskMeta& meta) override;
41 
42  std::ostream& m_out;
43  std::istream& m_in;
44 };
45 } // namespace RosettaStone
46 
47 #endif // ROSETTASTONE_IO_POLICY_HPP
TaskMeta class.
Definition: TaskMeta.hpp:97
BasicPolicy class.
Definition: BasicPolicy.hpp:21
IoPolicy class.
Definition: IoPolicy.hpp:21
Player class.
Definition: Player.hpp:33
IoPolicy(std::ostream &out, std::istream &in)
Definition: AccountInfo.hpp:14