Lots of work on removing malloc from driver
This commit is contained in:
@@ -7,44 +7,21 @@
|
||||
#include "source.hpp"
|
||||
#include <iostream>
|
||||
|
||||
struct EngineMaker {
|
||||
const char *name;
|
||||
DrivenEngineMaker func;
|
||||
};
|
||||
|
||||
static EngineMaker makers[] = {
|
||||
{ "textgame", make_TextGame },
|
||||
{ "lpxclient", make_LpxClient },
|
||||
{ "lpxserver", make_LpxServer },
|
||||
{ "driverlistentest", make_DriverListenTest },
|
||||
{ "driverwebservertest", make_DriverWebServerTest },
|
||||
{ "driverdnsfailtest", make_DriverDNSFailTest },
|
||||
{ "driverprintclocktest", make_DriverPrintClockTest },
|
||||
{ "unittest", make_RunUnitTests },
|
||||
{ nullptr, nullptr },
|
||||
};
|
||||
|
||||
static void usage() {
|
||||
std::cerr << "Usage: main <mode>" << std::endl;
|
||||
for (int i = 0; makers[i].name != nullptr; i++) {
|
||||
std::cerr << " <mode> can be: " << makers[i].name << std::endl;
|
||||
}
|
||||
exit(1);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
driver_sysinit(argc, argv);
|
||||
SourceDB::register_lua_builtins();
|
||||
UniqueDrivenEngine engine;
|
||||
if (argc < 2) usage();
|
||||
std::string mode = argv[1];
|
||||
for (int i = 0; makers[i].name != nullptr; i++) {
|
||||
if (mode == makers[i].name) {
|
||||
engine = makers[i].func();
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (engine == nullptr) usage();
|
||||
driver_drive(engine.get(), argc, argv);
|
||||
|
||||
DrivenEngine::register_maker("textgame", make_TextGame);
|
||||
DrivenEngine::register_maker("lpxclient", make_LpxClient);
|
||||
DrivenEngine::register_maker("lpxserver", make_LpxServer);
|
||||
DrivenEngine::register_maker("driverlistentest", make_DriverListenTest);
|
||||
DrivenEngine::register_maker("driverwebservertest", make_DriverWebServerTest);
|
||||
DrivenEngine::register_maker("driverdnsfailtest", make_DriverDNSFailTest);
|
||||
DrivenEngine::register_maker("driverprintclocktest", make_DriverPrintClockTest);
|
||||
DrivenEngine::register_maker("unittest", make_RunUnitTests);
|
||||
|
||||
driver_drive(argc, argv);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user