13 if (OslConfig::usiModeInSilent())
15 os <<
"info depth " << depth <<
"\n";
20 if (OslConfig::usiModeInSilent() && ! ignore_silent)
22 int seldepth = last-first;
23 if (last == first || *first != cur)
26 std::cerr <<
"info depth " << depth <<
" seldepth " << seldepth
27 <<
" time " <<
static_cast<int>(elapsed*1000) <<
" score cp " << value
28 <<
" nodes " << node_count
29 <<
" nps " << static_cast<int>(node_count/elapsed)
31 os <<
"info depth " << depth <<
" seldepth " << seldepth
32 <<
" time " <<
static_cast<int>(elapsed*1000) <<
" score cp " << value
33 <<
" nodes " << node_count <<
" nps " << static_cast<int>(node_count/elapsed);
38 while (first != last) {
48 if (OslConfig::usiModeInSilent())
50 int seldepth = last-first;
51 assert(seldepth == tlast-tfirst);
52 if (last - first && *first != cur)
54 os <<
"info depth " << depth <<
" seldepth " << seldepth
55 <<
" time " <<
static_cast<int>(elapsed*1000) <<
" score cp " << value
56 <<
" nodes " << node_count <<
" nps " << static_cast<int>(node_count/elapsed);
61 while (first != last) {
63 if (tfirst != tlast && *tfirst++)
74 if (OslConfig::usiModeInSilent())
76 static MilliSeconds prev;
77 if (! allow_frequent_display)
79 MilliSeconds now = MilliSeconds::now();
82 if ((now - prev).toSeconds() < 0.5)
93 if (OslConfig::usiModeInSilent())
95 os <<
"info time " <<
static_cast<int>(elapsed*1000)
96 <<
" nodes " << node_count <<
" nps " << static_cast<int>(node_count/elapsed) <<
"\n";
103 if (OslConfig::usiModeInSilent())
105 os <<
"info hashfull " <<
static_cast<int>(ratio*1000) <<
"\n";
113 : silent_period(s), extended(ex), os(o), udp_socket(0), udp_endpoint(0),
126 if ((!forced && depth0.elapsedSeconds() < silent_period)
129 os << deferred << std::flush;
132 deferred = client_id +
" " + deferred;
133 boost::system::error_code ignored_error;
134 udp_socket->send_to(boost::asio::buffer(deferred.c_str(), deferred.length()),
144 last_root_move =
Move();
146 depth0 = MilliSeconds::now();
149 if (depth0.elapsedSeconds() >= silent_period) {
157 const bool *threatmate_first,
const bool *threatmate_last)
159 const bool defer = depth0.elapsedSeconds() < silent_period;
160 std::ostringstream ss;
163 threatmate_first, threatmate_last);
169 std::string msg = ss.str();
170 os << msg << std::flush;
173 msg = client_id +
" " + msg;
174 boost::system::error_code ignored_error;
175 udp_socket->send_to(boost::asio::buffer(msg.c_str(), msg.length()),
186 showPV(depth, node_count, elapsed, value, cur, 0, 0, 0, 0);
193 last_root_move = cur;
200 last_root_move = cur;
209 std::ostringstream ss;
211 std::string msg = ss.str();
212 os << msg << std::flush;
215 msg = client_id +
" " + msg;
216 boost::system::error_code ignored_error;
217 udp_socket->send_to(boost::asio::buffer(msg.c_str(), msg.length()),
238 os <<
"info string forced move at the root: "
249 os <<
"info string loss by checkmate\n";
255 boost::asio::ip::udp::socket *s,
256 boost::asio::ip::udp::endpoint *e)
258 client_id = udp_client_id;