本文整理汇总了C++中Worker::Run方法的典型用法代码示例。如果您正苦于以下问题:C++ Worker::Run方法的具体用法?C++ Worker::Run怎么用?C++ Worker::Run使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Worker
的用法示例。
在下文中一共展示了Worker::Run方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Run
void Process::Run(Game& game) {
// ZeroMQ context
zmq::context_t zcontext(1);
// Components
Api api(zcontext, 5555);
Notifier notifier(zcontext, 5556);
Server server(zcontext, 5557);
// TODO: Read workers from file
// TODO: Initialize workers properly and distribute players
// TODO: Use a worker vector
Worker worker;
// Game log
Log log("match/log");
World* world;
if(utils::FileExists("match/world.txt")) {
std::ifstream stream("match/world.txt");
// Read existing world
world = game.ReadWorld(stream);
} else {
// TODO: This should be API-driven
// Generate a new world
world = game.GenerateWorld();
log.Clear();
}
// Print current world
std::ostringstream stream;
world->PrintStructure(stream);
debug::Println("MASTER", "Current world:");
debug::Print(stream.str());
// Start servers
std::thread api_thread(run_api, std::ref(api), std::ref(worker), std::ref(*world), std::ref(log));
std::thread server_thread(run_server, std::ref(server), std::ref(worker), std::ref(game), std::ref(*world),
std::ref(notifier), std::ref(log));
// Run players
worker.Run();
// Run game loop
run_game_loop(*world, notifier, log);
}