My Project
record.h
Go to the documentation of this file.
1 #ifndef _RECORD_H
2 #define _RECORD_H
4 #include "osl/numEffectState.h"
5 #include "osl/csa.h"
6 #include <boost/date_time/gregorian/gregorian_types.hpp>
7 #include <boost/ptr_container/ptr_vector.hpp>
8 #include <iosfwd>
9 
10 namespace osl
11 {
12  namespace record
13  {
14  struct Record
15  {
17  enum ResultType {
23  };
24  std::vector<int> times;
25  std::vector<std::string> comments;
26  std::vector<SearchInfo> move_info;
27 
31  boost::gregorian::date start_date; // default : not_a_date_time
32 
33  Record();
34  ~Record();
35  static void addWithNewLine(std::string& a, const std::string& b) {
36  if (! a.empty())
37  a += "\n";
38  a += b;
39  }
41  std::vector<Move> moves() const { return record.moves; }
42 
43  void setDate(const std::string& date_str);
44  void setMoveComment(const std::string&);
45  void setMoveInfo(const SearchInfo&);
46  void setMoveTime(int);
47  Move lastMove() const { return moves().empty() ? Move() : moves().back(); }
48 
49  void load(std::vector<Move>& moves, std::vector<int>& times) const {
50  moves = record.moves;
51  times = this->times;
52  }
53  void load(std::vector<Move>& moves, std::vector<int>& times,
54  std::vector<std::string>& comments,
55  std::vector<SearchInfo>& move_info) const {
56  load(moves, times);
57  comments = this->comments;
58  move_info = this->move_info;
59  }
60  };
61  std::ostream& operator<<(std::ostream& os, const Record & r);
62 
63  class RecordFile
64  {
65  protected:
67  public:
68  virtual ~RecordFile();
69  Record load() const { return record; }
70  const NumEffectState initialState() const { return record.initialState(); }
71  const std::vector<Move> moves() const { return record.moves(); }
72  };
73  }
74  using record::SearchInfo;
75  using record::Record;
76  using record::RecordFile;
77 } // namespace osl
78 #endif /* _RECORD_H */
79 // ;;; Local Variables:
80 // ;;; mode:c++
81 // ;;; c-basic-offset:2
82 // ;;; End:
圧縮していない moveの表現 .
Definition: basic_type.h:1052
利きを持つ局面
Record load() const
Definition: record.h:69
virtual ~RecordFile()
Definition: record.cc:128
const NumEffectState initialState() const
Definition: record.h:70
const std::vector< Move > moves() const
Definition: record.h:71
std::ostream & operator<<(std::ostream &os, const Color &c)
Definition: kanjiPrint.cc:156
NumEffectState initial_state
Definition: csa.h:44
std::vector< Move > moves
Definition: csa.h:45
std::string tournament_name
Definition: record.h:28
RecordMinimal record
Definition: record.h:16
ResultType result
Definition: record.h:30
std::string version
Definition: record.h:28
static void addWithNewLine(std::string &a, const std::string &b)
Definition: record.h:35
Move lastMove() const
Definition: record.h:47
std::string initial_comment
Definition: record.h:28
void load(std::vector< Move > &moves, std::vector< int > &times) const
Definition: record.h:49
void setMoveInfo(const SearchInfo &)
Definition: record.cc:26
std::vector< int > times
Definition: record.h:24
std::vector< Move > moves() const
Definition: record.h:41
void setMoveTime(int)
Definition: record.cc:33
void setDate(const std::string &date_str)
Definition: record.cc:39
void setMoveComment(const std::string &)
Definition: record.cc:17
CArray< std::string, 2 > player
Definition: record.h:29
NumEffectState initialState() const
Definition: record.h:40
std::vector< SearchInfo > move_info
Definition: record.h:26
std::vector< std::string > comments
Definition: record.h:25
boost::gregorian::date start_date
Definition: record.h:31
void load(std::vector< Move > &moves, std::vector< int > &times, std::vector< std::string > &comments, std::vector< SearchInfo > &move_info) const
Definition: record.h:53