Add more grpc - Asyncstuff
[src/agl-compositor.git] / clients / grpc-sync.cpp
1 #include <cstdio>
2 #include <ctime>
3 #include <algorithm>
4 #include <queue>
5
6 #include <grpc/grpc.h>
7 #include <grpcpp/grpcpp.h>
8 #include <grpcpp/server.h>
9 #include <grpcpp/server_builder.h>
10 #include <grpcpp/server_context.h>
11
12 #include <grpcpp/ext/proto_server_reflection_plugin.h>
13 #include <grpcpp/health_check_service_interface.h>
14
15 #include "agl_shell.grpc.pb.h"
16 #include "grpc-sync.h"
17
18 grpc::ServerUnaryReactor *
19 GrpcServiceImpl::ActivateApp(grpc::CallbackServerContext *context,
20                             const ::agl_shell_ipc::ActivateRequest* request,
21                             google::protobuf::Empty* /*response*/)
22 {
23         fprintf(stderr, "activating app %s on output %s\n",
24                         request->app_id().c_str(),
25                         request->output_name().c_str());
26
27         m_aglShell->ActivateApp(request->app_id(), request->output_name());
28
29         grpc::ServerUnaryReactor* reactor = context->DefaultReactor();
30         reactor->Finish(grpc::Status::OK);
31         return reactor;
32 }
33
34 grpc::ServerUnaryReactor *
35 GrpcServiceImpl::DeactivateApp(grpc::CallbackServerContext *context,
36                               const ::agl_shell_ipc::DeactivateRequest* request,
37                               google::protobuf::Empty* /*response*/)
38 {
39         m_aglShell->DeactivateApp(request->app_id());
40
41         grpc::ServerUnaryReactor* reactor = context->DefaultReactor();
42         reactor->Finish(grpc::Status::OK);
43         return reactor;
44 }
45
46 grpc::ServerUnaryReactor *
47 GrpcServiceImpl::SetAppFloat(grpc::CallbackServerContext *context,
48                             const ::agl_shell_ipc::FloatRequest* request,
49                             google::protobuf::Empty* /* response */)
50 {
51         m_aglShell->SetAppFloat(request->app_id());
52
53         grpc::ServerUnaryReactor* reactor = context->DefaultReactor();
54         reactor->Finish(grpc::Status::OK);
55         return reactor;
56 }
57
58 grpc::ServerUnaryReactor *
59 GrpcServiceImpl::SetAppSplit(grpc::CallbackServerContext *context,
60            const ::agl_shell_ipc::SplitRequest* request,
61            google::protobuf::Empty* /*response*/)
62 {
63         m_aglShell->SetAppSplit(request->app_id(), request->tile_orientation());
64
65         grpc::ServerUnaryReactor* reactor = context->DefaultReactor();
66         reactor->Finish(grpc::Status::OK);
67         return reactor;
68 }
69
70 grpc::ServerUnaryReactor *
71 GrpcServiceImpl::AppStatusState(grpc::CallbackServerContext *context,
72            google::protobuf::Empty*,
73            ::grpc::ServerWriter<::agl_shell_ipc::AppState>* writer)
74 {
75         (void) writer;
76         grpc::ServerUnaryReactor* reactor = context->DefaultReactor();
77         reactor->Finish(grpc::Status::OK);
78
79         return reactor;
80 }