syntax = "proto3"; package runner.v1; import "google/protobuf/timestamp.proto"; import "google/protobuf/empty.proto"; service RunnerService { rpc GetWork (google.protobuf.Empty) returns (stream GetWorkResponse); rpc BuildFinished (stream BuildFinishedRequest) returns (google.protobuf.Empty); rpc TestFinished (stream TestFinishedRequest) returns (google.protobuf.Empty); } message Test { uint32 test_id = 1; uint32 language_id = 2; bytes solution_executable = 3; } message Build { uint32 solution_id = 1; uint32 language_id = 2; bytes solution_code = 3; } message GetWorkResponse { oneof work { Test test = 1; Build build = 2; bool no work = 3; } } message TestFinishedRequest { uint32 test = 1; uint32 result = 2; } message BuildFinishedRequest { uint32 solution_id = 1; bytes solution_executable = 2; }