summaryrefslogtreecommitdiffstats
path: root/applauncher/protos/applauncher.proto
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2022-09-10 12:31:13 -0400
committerScott Murray <scott.murray@konsulko.com>2022-09-21 14:34:40 +0000
commit7573b0647a78baa3346b6a1a964ece01ed49a86c (patch)
tree1f5c6469b67dafed5b6494ea37ee2dc706786738 /applauncher/protos/applauncher.proto
parent6420728323808d6eea8f83688631f149af186e5d (diff)
Add applaunchd gRPC API wrapper
Changes: - Add applaunchd gRPC API wrapper in applauncher directory, clients can include AppLauncherClient.h to use it. - To facilitate generating protobuf and gRPC code with protoc, switch from CMake to meson for building. While the code generation can be done in CMake, it is a lot more straightforward with meson, and if use of this library continues meson will be easier to maintain. Known issues: - The behavior of the client implementation here with respect to the server side (i.e. applaunchd) going away is currently robust, but could stand improvement with some further investigation. As the code stands, starting applications works when applaunchd becomes available again, but the streaming status RPC that is tied to window activation in the homescreen does not reconnect, and there seem to be some things that need to be resolved with respect to Qt object connection expiry to do so. If the Qt demos continue to be used in a significant fashion, this may be worth picking up. Bug-AGL: SPEC-4559 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I5cb480d4ce4d1cb944ebfd4114fb305f09f28ea3 (cherry picked from commit 560d902f4d2bf4ba3bb2edba6436080ee7d5a5ac)
Diffstat (limited to 'applauncher/protos/applauncher.proto')
-rw-r--r--applauncher/protos/applauncher.proto50
1 files changed, 50 insertions, 0 deletions
diff --git a/applauncher/protos/applauncher.proto b/applauncher/protos/applauncher.proto
new file mode 100644
index 0000000..0b8e0fc
--- /dev/null
+++ b/applauncher/protos/applauncher.proto
@@ -0,0 +1,50 @@
+syntax = "proto3";
+
+package automotivegradelinux;
+
+service AppLauncher {
+ rpc StartApplication(StartRequest) returns (StartResponse) {}
+ rpc ListApplications(ListRequest) returns (ListResponse) {}
+ rpc GetStatusEvents(StatusRequest) returns (stream StatusResponse) {}
+}
+
+message StartRequest {
+ string id = 1;
+}
+
+message StartResponse {
+ bool status = 1;
+ string message = 2;
+}
+
+message ListRequest {
+}
+
+message ListResponse {
+ repeated AppInfo apps = 1;
+}
+
+message AppInfo {
+ string id = 1;
+ string name = 2;
+ string icon_path = 3;
+}
+
+message StatusRequest {
+}
+
+message AppStatus {
+ string id = 1;
+ string status = 2;
+}
+
+// Future-proofing for e.g. potentially signaling a list refresh
+message LauncherStatus {
+}
+
+message StatusResponse {
+ oneof status {
+ AppStatus app = 1;
+ LauncherStatus launcher = 2;
+ }
+}