app/board_backend.h¶
the physical-board primitives the game loop depends on.
GameSession’s single orchestration loop is written against this interface so the same loop drives real hardware (HardwareBackend over GameController) and off-Pi development (SimBackend). See docs/gui-docs/PLAN.md §3.3.
-
namespace Gantry¶
-
namespace kirin
-
-
struct HumanMoveResult¶
- #include <board_backend.h>
-
class IBoardBackend¶
- #include <board_backend.h>
Subclassed by kirin::HardwareBackend, kirin::SimBackend
Public Functions
-
virtual ~IBoardBackend() = default¶
-
inline virtual bool prepareNewGameFromSnapshot(bool engineWhite, const ::BoardIdentity &snapshot)¶
-
inline virtual bool resetToStart()¶
-
virtual bool executeEngineMove(int engineMove) = 0¶
-
inline virtual bool undoMove(int engineMove, int capturedSlot)¶
-
inline virtual bool executeSetup(const ::SetupPlan &plan, const ::BoardIdentity &target)¶
-
virtual HumanMoveResult waitForHumanMove(std::atomic<bool> &cancel) = 0¶
-
virtual bool verifyBoardState() = 0¶
-
inline virtual bool readBoardOccupancy(unsigned long long &expected, unsigned long long &actual)¶
-
inline virtual bool redriveLastMove(int engineMove)¶
-
virtual void syncWithEngine() = 0¶
-
virtual void updateTracker(int engineMove) = 0¶
-
inline virtual void submitHumanMove(const std::string &uci)¶
-
inline virtual void setScannerObserver(const ScannerObserver &observer)¶
-
inline virtual void setPlanObserver(const PlanObserver &observer)¶
-
inline virtual void setGcodeObserver(const Gantry::GcodeObserver &observer)¶
-
virtual bool isSimulation() const = 0¶
-
virtual ~IBoardBackend() = default¶
-
struct HumanMoveResult¶