app/linked_engine.h

IEngine backed by the in-process Kirin engine.

The Kirin engine keeps its state in globals (one logical instance), so a single LinkedEngine wraps those globals. This is the default, lowest-latency engine path for the GUI: no IPC, direct function calls. Access is expected to be serialized by GameSession’s worker thread.

namespace kirin
class LinkedEngine : public kirin::IEngine
#include <linked_engine.h>

Public Functions

virtual void applyOptions(const EngineOptions &opts) override
virtual void newGame(const std::string &fen = "") override
virtual bool playMove(const std::string &uci) override
virtual bool playMove(int encodedMove) override
virtual int parseMove(const std::string &uci) override
virtual std::string go(const SearchLimits &limits, const ThinkingCallback &onInfo = nullptr) override
virtual AnalysisLine analyze(const SearchLimits &limits) override
virtual void stop() override
virtual std::string fen() const override
virtual char sideToMove() const override
virtual GameResult result() const override
virtual bool isGameOver() const override
virtual std::string resultReason() const override

Private Functions

void runSearch(const SearchLimits &limits, const ThinkingCallback &onInfo, LastIteration &last)
struct LastIteration

Public Members

int depth = 0
int scoreCp = 0
long nodes = 0
std::string pvUci
bool valid = false