00001
00002
00003 #ifndef OSL_USIREPORTER_H
00004 #define OSL_USIREPORTER_H
00005 #include "osl/search/searchMonitor.h"
00006 namespace osl
00007 {
00008 namespace search
00009 {
00010 struct UsiReporter
00011 {
00012 static void newDepth(int depth);
00013 static void showPV(int depth, size_t node_count, double elapsed, int value, Move cur, const Move *first, const Move *last, bool ignore_silent=false);
00014 static void rootMove(Move cur, bool allow_frequent_display=false);
00015 static void timeInfo(size_t node_count, double elapsed);
00016 static void hashInfo(double ratio);
00017 };
00018
00019 class UsiMonitor : public SearchMonitor
00020 {
00021 Move last_root_move;
00022 public:
00023 ~UsiMonitor();
00024 void newDepth(int depth);
00025 void showPV(int depth, size_t node_count, double elapsed, int value, Move cur, const Move *first, const Move *last);
00026 void rootMove(Move cur);
00027 void rootFirstMove(Move cur);
00028 void timeInfo(size_t node_count, double elapsed);
00029 void hashInfo(double ratio);
00030 void rootForcedMove(Move the_move);
00031 void rootLossByCheckmate();
00032 };
00033 }
00034 }
00035
00036
00037 #endif
00038
00039
00040
00041