• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
2// Licensed under the Apache License, Version 2.0 (the "License");
3// you may not use this file except in compliance with the License.
4// You may obtain a copy of the License at
5//
6//     http://www.apache.org/licenses/LICENSE-2.0
7//
8// Unless required by applicable law or agreed to in writing, software
9// distributed under the License is distributed on an "AS IS" BASIS,
10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11// See the License for the specific language governing permissions and
12// limitations under the License.
13
14syntax = "proto3";
15
16option java_package = "ohos.devtools.datasources.transport.grpc.service";
17
18import "common_types.proto";
19
20// Message define for profiler service, imported by profiler service proto file.
21// for GetCapabilities
22message GetCapabilitiesRequest {
23    uint32 request_id = 1;
24}
25
26message ProfilerPluginCapability {
27    string path = 1;
28    string name = 2;
29}
30
31message GetCapabilitiesResponse {
32    uint32 status = 1;
33    repeated ProfilerPluginCapability capabilities = 2;
34}
35
36
37// for CreateSessionRequest
38message ProfilerSessionConfig {
39    message BufferConfig {
40        enum Policy {
41            RECYCLE = 0;
42            FLATTEN = 1;
43        };
44        uint32 pages = 1;
45        Policy policy = 2;
46    }
47    repeated BufferConfig buffers = 1;
48
49    enum Mode {
50        OFFLINE = 0; // save all plugin results to result file.
51        ONLINE = 1;  // push all plugin results to host PC with streamed FetchDataResponse.
52    };
53    Mode session_mode = 2;
54    string result_file = 3;     // for OFFLINE mode, result file path
55    uint32 result_max_size = 4; // for OFFLINE mode, result file max size in KB
56    uint32 sample_duration = 5; // for OFFLINE mode, sample duration in ms
57    uint32 keep_alive_time = 6; // if set to non-zero value, session will auto-destroyed after CreateSession in ms
58    bool discard_cache_data = 7; // if set true, session will stop immediately.(cache data will be lost)
59    bool split_file = 8; // if set true, will split result_file
60    uint32 split_file_max_size_mb = 9; // limit the maximum size of a single split file, min size is 200Mb
61    uint32 split_file_max_num = 10; // limit the split file max num, default is 10
62}
63
64message CreateSessionRequest {
65    uint32 request_id = 1;
66    ProfilerSessionConfig session_config = 2;
67    repeated ProfilerPluginConfig plugin_configs = 3;
68}
69
70message CreateSessionResponse {
71    uint32 status = 1;
72    uint32 session_id = 2;
73    repeated ProfilerPluginState plugin_status = 3;
74}
75
76// for StartSession
77message StartSessionRequest {
78    uint32 request_id = 1;
79    uint32 session_id = 2;
80    repeated ProfilerPluginConfig update_configs = 3;
81}
82
83message StartSessionResponse {
84    uint32 status = 1;
85    repeated ProfilerPluginState plugin_status = 3;
86}
87
88// for FetchData
89message FetchDataRequest {
90    uint32 request_id = 1;
91    uint32 session_id = 2;
92    bytes addtion_data = 3;
93}
94
95message FetchDataResponse {
96    uint32 status = 1;
97    uint32 response_id = 2;
98    bool has_more = 3;
99    repeated ProfilerPluginData plugin_data = 4;
100}
101
102// for SubscribeProfilerEvtData
103message SubscribeProfilerEvtRequest {
104    uint32 request_id = 1;
105    uint32 session_id = 2;
106    bytes addtion_data = 3;
107}
108
109message SubscribeProfilerEvtResponse {
110    uint32 status = 1;
111    uint32 response_id = 2;
112    bool has_more = 3;
113    repeated ProfilerPluginState plugin_state = 4;
114}
115
116// for StopSession
117message StopSessionRequest {
118    uint32 request_id = 1;
119    uint32 session_id = 2;
120}
121
122message StopSessionResponse {
123    uint32 status = 1;
124    repeated ProfilerPluginState plugin_status = 3;
125}
126
127// for DestroySession
128message DestroySessionRequest {
129    uint32 request_id = 1;
130    uint32 session_id = 2;
131}
132
133message DestroySessionResponse {
134    uint32 status = 1;
135    repeated ProfilerPluginState plugin_status = 3;
136}
137
138// for KeepSession
139message KeepSessionRequest {
140    uint32 request_id = 1;
141    uint32 session_id = 2;
142    uint32 keep_alive_time = 3;
143}
144
145message KeepSessionResponse {
146    uint32 status = 1;
147}
148