backend-infra-engineer: Release v0.3.2 snapshot
This commit is contained in:
46
src/cli/service/agent/agent_control_server.cc
Normal file
46
src/cli/service/agent/agent_control_server.cc
Normal file
@@ -0,0 +1,46 @@
|
||||
#include "cli/service/agent/agent_control_server.h"
|
||||
#include "cli/service/agent/emulator_service_impl.h"
|
||||
#include <grpcpp/server.h>
|
||||
#include <grpcpp/server_builder.h>
|
||||
#include <iostream>
|
||||
|
||||
namespace yaze::agent {
|
||||
|
||||
AgentControlServer::AgentControlServer(yaze::emu::Emulator* emulator)
|
||||
: emulator_(emulator) {}
|
||||
|
||||
AgentControlServer::~AgentControlServer() {
|
||||
Stop();
|
||||
}
|
||||
|
||||
void AgentControlServer::Start() {
|
||||
server_thread_ = std::thread(&AgentControlServer::Run, this);
|
||||
}
|
||||
|
||||
void AgentControlServer::Stop() {
|
||||
if (server_) {
|
||||
server_->Shutdown();
|
||||
}
|
||||
if (server_thread_.joinable()) {
|
||||
server_thread_.join();
|
||||
}
|
||||
}
|
||||
|
||||
void AgentControlServer::Run() {
|
||||
std::string server_address("0.0.0.0:50051");
|
||||
EmulatorServiceImpl service(emulator_);
|
||||
|
||||
grpc::ServerBuilder builder;
|
||||
builder.AddListeningPort(server_address, grpc::InsecureServerCredentials());
|
||||
builder.RegisterService(&service);
|
||||
|
||||
server_ = builder.BuildAndStart();
|
||||
if (server_) {
|
||||
std::cout << "AgentControlServer listening on " << server_address << std::endl;
|
||||
server_->Wait();
|
||||
} else {
|
||||
std::cerr << "Failed to start AgentControlServer on " << server_address << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace yaze::agent
|
||||
Reference in New Issue
Block a user