#include "driver.hpp" #include #include #include #include void driver_drive(DrivenEngine *de) { const int MAXINPUT = 1000; char buf[MAXINPUT]; int nbytes; const char *bytes; DrivenEngine::set(de); de->drv_logmode_none(); de->drv_set_lua_source(util::read_lua_source("lua")); de->drv_invoke_engine_init(); while (!de->drv_get_stop_driver()) { if (de->drv_get_rescan_lua_source()) { de->drv_set_lua_source(util::read_lua_source("lua")); } de->drv_peek_outgoing(0, &nbytes, &bytes); if (nbytes > 0) { fwrite(bytes, 1, nbytes, stdout); } if (fgets(buf, MAXINPUT, stdin)) { de->drv_recv_incoming(0, strlen(buf), buf); } de->drv_invoke_engine_update(); } DrivenEngine::set(nullptr); }