00001 /* showAllTree.h 00002 */ 00003 #ifndef _CHECK_SHOWALLTREE_H 00004 #define _CHECK_SHOWALLTREE_H 00005 00006 #include <iosfwd> 00007 namespace osl 00008 { 00009 namespace checkmate 00010 { 00011 class CheckHashRecord; 00012 00013 namespace analyzer 00014 { 00015 class TreeWriter; 00016 class RecordSet; 00020 class ShowAllTree 00021 { 00022 std::ostream& os; 00023 int maxDepth; 00024 bool expandFinalState; 00025 bool showTerminalMoves; 00026 public: 00027 ShowAllTree(std::ostream& os, int maxDepth, 00028 bool expandFinalState=true, bool showTerminalMoves=false); 00029 void showOutline(const CheckHashRecord *record) const; 00030 void showDot(const CheckHashRecord *record, size_t threshold) const; 00031 static bool isTerminal(const CheckHashRecord *record); 00032 private: 00033 void show(TreeWriter& writer, const CheckHashRecord *record) const; 00034 void show(const CheckHashRecord *record, TreeWriter& writer, 00035 RecordSet& visited) const; 00036 }; 00037 } // namespace analyzer 00038 } // namespace checkmate 00039 } // namespace osl 00040 00041 00042 #endif /* _CHECK_SHOWALLTREE_H */ 00043 // ;;; Local Variables: 00044 // ;;; mode:c++ 00045 // ;;; c-basic-offset:2 00046 // ;;; End: