| // Copyright (C) 2015 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 replay; |
| |
| import "github.com/gogo/protobuf/gogoproto/gogo.proto"; |
| import "android.googlesource.com/platform/tools/gpu/gapid/robot/job/job.proto"; |
| import "android.googlesource.com/platform/tools/gpu/gapid/robot/job/worker/worker.proto"; |
| import "android.googlesource.com/platform/tools/gpu/gapid/search/search.proto"; |
| |
| option (gogoproto.goproto_enum_prefix_all) = false; |
| |
| // Input describes the inputs to a replay action. |
| message Input { |
| // Trace is the stash id of the trace to replay. |
| string trace = 1; |
| // Gapit is the stash id of the graphics analysis tool to use. |
| string gapit = 2; |
| // Gapis is the stash id of the graphics analysis server to use. |
| string gapis = 3; |
| // Gapir is the stash id of the graphics replay daemon to use. |
| string gapir = 4; |
| } |
| |
| // Output holds the outputs of a replay action. |
| message Output { |
| // Log is stash id of the generated log file. |
| string log = 1; |
| // Video is the movie of the replay frame capture output. |
| string video = 2; |
| } |
| |
| // Action holds the information about an execution of a task. |
| message Action { |
| // Id is the unique id the action. |
| string id = 1; |
| // Input is the set of inputs to the action. |
| Input input = 2; |
| // Host is the device which hosts the action. |
| string host = 3; |
| // Target is the device on which the action will be performed. |
| string target = 4; |
| // Status is the status to set for the action |
| job.Status status = 5; |
| // Output is the results of the action. |
| Output output = 6; |
| } |
| |
| // Task holds the information needed to run a replay task on a device. |
| message Task { |
| // Action is the id of the action this task should post results to. |
| string action = 1; |
| // Input is the set of inputs to the task. |
| Input input = 2; |
| } |
| |
| // Service is the api to the robot replay manager. |
| service Service { |
| // Search is used to find actions that match the given query. |
| rpc Search(search.Query) returns(stream Action) {}; |
| // Register registers a device for a stream of tasks. |
| rpc Register(worker.RegisterRequest) returns(stream Task) {}; |
| // Do asks the manager to send a task to a device. |
| rpc Do(DoRequest) returns(worker.DoResponse) {}; |
| // Update sets the results of an action. |
| rpc Update(UpdateRequest) returns(worker.UpdateResponse) {}; |
| } |
| |
| message DoRequest{ |
| // Device is the device id to perform the task on. |
| string device = 1; |
| // Input is the set of inputs to the task. |
| Input input = 2; |
| } |
| |
| message UpdateRequest { |
| // Action is the action to update. |
| string action = 1; |
| // Status is the status to set for the action |
| job.Status status = 2; |
| // Output is the outputs to set on the action. |
| Output output = 3; |
| } |