6 #include <grpcpp/grpcpp.h>
7 #include <grpcpp/server.h>
8 #include <grpcpp/server_builder.h>
9 #include <grpcpp/server_context.h>
12 #include <condition_variable>
14 #include <grpcpp/ext/proto_server_reflection_plugin.h>
15 #include <grpcpp/health_check_service_interface.h>
18 #include "agl_shell.grpc.pb.h"
21 const char kDefaultGrpcServiceAddress[] = "127.0.0.1:14005";
24 class Lister : public grpc::ServerWriteReactor<::agl_shell_ipc::AppState> {
26 Lister(Shell *aglShell);
27 void OnDone() override;
28 void OnWriteDone(bool ok) override;
34 class GrpcServiceImpl final : public agl_shell_ipc::AglShellManagerService::CallbackService {
36 GrpcServiceImpl(Shell *aglShell) : m_aglShell(aglShell) {}
38 grpc::ServerUnaryReactor *ActivateApp(grpc::CallbackServerContext *context,
39 const ::agl_shell_ipc::ActivateRequest* request,
40 google::protobuf::Empty* /*response*/) override;
42 grpc::ServerUnaryReactor *DeactivateApp(grpc::CallbackServerContext *context,
43 const ::agl_shell_ipc::DeactivateRequest* request,
44 google::protobuf::Empty* /*response*/) override;
46 grpc::ServerUnaryReactor *SetAppSplit(grpc::CallbackServerContext *context,
47 const ::agl_shell_ipc::SplitRequest* request,
48 google::protobuf::Empty* /*response*/) override;
50 grpc::ServerUnaryReactor *SetAppFloat(grpc::CallbackServerContext *context,
51 const ::agl_shell_ipc::FloatRequest* request,
52 google::protobuf::Empty* /*response*/) override;
54 grpc::ServerWriteReactor< ::agl_shell_ipc::AppState>* AppStatusState(
55 ::grpc::CallbackServerContext* /*context*/,
56 const ::google::protobuf::Empty* /*request*/) override;
60 std::mutex m_done_mutex;
61 std::condition_variable m_done_cv;