Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 690fc5c2 authored by Yu Shan's avatar Yu Shan Committed by Android (Google) Code Review
Browse files

Merge "Define grpc proto for remoteaccess."

parents 663b81f4 cb6afed5
Loading
Loading
Loading
Loading
+68 −0
Original line number Diff line number Diff line
// Copyright (C) 2022 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

genrule {
    name: "wakeup_client_pb_h",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-cpp-plugin",
    ],
    cmd: "$(location aprotoc) -I$$(dirname $(in)) -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
    srcs: [
        "wakeup_client.proto",
    ],
    out: [
        "wakeup_client.pb.h",
    ],
}

genrule {
    name: "wakeup_client_pb_cc",
    tools: [
        "aprotoc",
        "protoc-gen-grpc-cpp-plugin",
    ],
    cmd: "$(location aprotoc) -I$$(dirname $(in)) -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
    srcs: [
        "wakeup_client.proto",
    ],
    out: [
        "wakeup_client.pb.cc",
    ],
}

cc_library_static {
    name: "wakeup_client_protos",
    vendor: true,
    host_supported: true,
    include_dirs: [
        "external/protobuf/src",
    ],
    generated_headers: [
        "wakeup_client_pb_h",
    ],
    export_generated_headers: [
        "wakeup_client_pb_h",
    ],
    generated_sources: [
        "wakeup_client_pb_cc",
    ],
    shared_libs: [
        "libgrpc++",
        "libprotobuf-cpp-full",
    ],
    cflags: [
        "-Wno-unused-parameter",
    ],
}
+66 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2022 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

syntax = "proto3";

package android.hardware.automotive.remoteaccess;

/**
 * Service provided by a wakeup client running on TCU.
 */
service WakeupClient {
    /**
     * Establish a long-live connection to receive remote tasks.
     *
     * <p>For the server, whenever a remote task arrives, if the connection is
     * alive, it will use the return stream to return a task's information.
     *
     * <p>If the connection is not alive, the server must stores the remote task
     * until a new connection is established (which means AP is ready to
     * receive remote task again) and send the stored tasks.
     *
     * <p>If the server closes the connection, the client will try to
     * reestablish the connection.
     */
    rpc GetRemoteTasks(GetRemoteTasksRequest) returns (stream GetRemoteTasksResponse) {}

    /**
     * Notifies whether AP is required to be waken up when remote task arrives.
     *
     * <p>Wakeup client should store and use this state until a new call with a
     * different state arrives.
     *
     * <p>If {@code isWakeupRequired} in the request is true, it must wake up AP
     * when a remote task arrives.
     *
     * <p>If {@code isWakeupRequired} in the request is false, it must not try
     * to wake up AP.
     */
    rpc NotifyWakeupRequired(NotifyWakeupRequiredRequest) returns (NotifyWakeupRequiredResponse) {}
}

message GetRemoteTasksRequest {}

message GetRemoteTasksResponse {
    string clientId = 1;
    bytes data = 2;
}

message NotifyWakeupRequiredRequest {
    bool isWakeupRequired = 1;
}

message NotifyWakeupRequiredResponse {}