25 #ifndef SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_
26 #define SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_
28 #include <corbo-communication/messages/corbo_parameters.pb.h>
29 #include <corbo-communication/services/master_service.grpc.pb.h>
40 #include <grpc++/grpc++.h>
64 class Master :
public services::MasterService::Service
80 void start(
const std::string& server_address,
bool blocking =
true);
87 bool setcorboMessage(
const corbo::messages::corboParameters& msg, std::stringstream* issues);
89 bool setPlant(
const messages::Plant& msg, std::stringstream* issues =
nullptr);
90 bool setController(
const corbo::messages::Controller& msg, std::stringstream* issues =
nullptr);
91 bool setObserver(
const corbo::messages::Observer& msg, std::stringstream* issues =
nullptr);
92 bool setTask(
const corbo::messages::Task& msg, std::stringstream* issues =
nullptr);
98 grpc::Status getPlant(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Plant* response)
override;
103 grpc::Status getController(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Controller* response)
override;
108 grpc::Status getObserver(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Observer* response)
override;
113 grpc::Status getTask(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Task* response)
override;
117 grpc::ServerWriter<corbo::messages::Signal>* response_stream)
override;
121 grpc::ServerWriter<corbo::messages::Signal>* response_stream)
override;
129 grpc::Status stop(grpc::ServerContext* context,
const corbo::messages::Void* request, corbo::messages::Void* response)
override;
135 std::unique_ptr<grpc::Server>
_server;
140 #endif // SRC_MASTER_INCLUDE_CORBO_MASTER_MASTER_H_