5#include <grpcpp/server.h>
6#include <grpcpp/server_builder.h>
17 : emulator_(emulator), rom_getter_(rom_getter), rom_loader_(rom_loader) {}
19AgentControlServer::~AgentControlServer() {
23void AgentControlServer::Start() {
24 server_thread_ = std::thread(&AgentControlServer::Run,
this);
27void AgentControlServer::Stop() {
31 if (server_thread_.joinable()) {
32 server_thread_.join();
36void AgentControlServer::Run() {
38 std::string server_address(
"0.0.0.0:50053");
41 grpc::ServerBuilder builder;
44 int selected_port = 0;
45 builder.AddListeningPort(server_address, grpc::InsecureServerCredentials(),
47 builder.RegisterService(&service);
49 server_ = builder.BuildAndStart();
50 if (server_ && selected_port > 0) {
51 std::cout <<
"AgentControlServer listening on " << server_address
52 <<
" (selected_port: " << selected_port <<
")" << std::endl;
55 std::cerr <<
"Failed to start AgentControlServer on " << server_address
56 <<
" (selected_port: " << selected_port <<
")" << std::endl;
A class for emulating and debugging SNES games.