From c9b163bb52f29c5c11b82d31c4b96ed9f1c3e7b7 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Fri, 25 Jan 2008 08:54:53 +0100 Subject: [PATCH] Add finer engine tracing. --- src/engine.cpp | 13 +++++++++++-- src/engine.h | 2 ++ src/engineinfo.cpp | 8 +++++--- src/engineinfo.h | 2 +- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/engine.cpp b/src/engine.cpp index f3267ef..26096b2 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -21,8 +21,9 @@ using namespace boost; Engine::Engine(const QString& path, const QStringList& arguments) -: m_path(path) -, m_arguments(arguments) { + : m_path(path) +, m_arguments(arguments) +,m_side(-1) { connect(&m_engine, SIGNAL(readyReadStandardOutput()), this, SLOT(processInput())); connect(&m_engine, SIGNAL(started()), this, SLOT(engineRunning())); connect(&m_engine, SIGNAL(finished(int, QProcess::ExitStatus)), @@ -57,6 +58,10 @@ void Engine::sendCommand(const QString& command, bool echo) { QTextStream os(&m_engine); os << command << "\n"; #ifdef ENGINE_DEBUG + if (m_side == -1) + std::cout << "?"; + else + std::cout << m_side; std::cout << "> " << command << std::endl; #endif } @@ -71,6 +76,10 @@ void Engine::processInput() { QString line = m_engine.readLine(); line.remove("\n").remove("\r"); #ifdef ENGINE_DEBUG + if (m_side == -1) + std::cout << "?"; + else + std::cout << m_side; std::cout << "< " << line << std::endl; #endif if (m_console) diff --git a/src/engine.h b/src/engine.h index 8f81c5d..b81c46e 100644 --- a/src/engine.h +++ b/src/engine.h @@ -39,6 +39,7 @@ protected: boost::shared_ptr m_console; boost::weak_ptr m_notifier; std::queue m_command_queue; + int m_side; virtual void initializeEngine() = 0; public: @@ -49,6 +50,7 @@ public: Engine(const QString& path, const QStringList& arguments); void setWorkingPath(const QString& workPath) { m_workPath = workPath; } + void setSide(int side) { m_side = side; } virtual ~Engine(); diff --git a/src/engineinfo.cpp b/src/engineinfo.cpp index ebf718e..49281c5 100644 --- a/src/engineinfo.cpp +++ b/src/engineinfo.cpp @@ -45,7 +45,7 @@ void EngineInfo::playAs(int player) { m_token[player] = EntityToken(); } else { - m_token[player] = m_ui.addPlayingEngine(player, engine()); + m_token[player] = m_ui.addPlayingEngine(player, engine(player)); } } @@ -63,7 +63,7 @@ EngineInfo::EngineInfo(const EngineDetails& details, UI& ui) , m_details(details) , m_ui(ui) { } -shared_ptr EngineInfo::engine() { +shared_ptr EngineInfo::engine(int player) { shared_ptr res; if (m_details.type == EngineDetails::XBoard) res = shared_ptr(new XBoardEngine(m_details.path, QStringList())); @@ -74,8 +74,10 @@ shared_ptr EngineInfo::engine() { return shared_ptr(); } - if (res) + if (res) { res->setWorkingPath(m_details.workPath); + res->setSide(player); + } return res; } diff --git a/src/engineinfo.h b/src/engineinfo.h index d14e6af..cfe125e 100644 --- a/src/engineinfo.h +++ b/src/engineinfo.h @@ -80,7 +80,7 @@ Q_OBJECT UI& m_ui; EntityToken m_token[2]; protected: - virtual boost::shared_ptr engine(); + virtual boost::shared_ptr engine(int player); void playAs(int player); public: EngineInfo(const EngineDetails& details, UI& ui); -- 2.11.4.GIT