blob: da940078bbf4b688993c1a3babb1b574b99608a9 [file] [log] [blame]
// 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;
}