32 lines
813 B
C++
32 lines
813 B
C++
|
|
#include "driver.hpp"
|
|
#include <map>
|
|
#include <iostream>
|
|
#include <cstdio>
|
|
#include <cstring>
|
|
|
|
|
|
void driver_drive(DrivenEngine *de) {
|
|
const int MAXINPUT = 1000;
|
|
char buf[MAXINPUT];
|
|
int nbytes; const char *bytes;
|
|
DrivenEngine::set(de);
|
|
de->drv_logmode_none();
|
|
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_invoke_event_update();
|
|
}
|
|
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_event_update();
|
|
}
|
|
}
|
|
DrivenEngine::set(nullptr);
|
|
}
|
|
|