106f6ba60Sopenharmony_ci// Copyright (c) Huawei Technologies Co., Ltd. 2021. All rights reserved.
206f6ba60Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
306f6ba60Sopenharmony_ci// you may not use this file except in compliance with the License.
406f6ba60Sopenharmony_ci// You may obtain a copy of the License at
506f6ba60Sopenharmony_ci//
606f6ba60Sopenharmony_ci//     http://www.apache.org/licenses/LICENSE-2.0
706f6ba60Sopenharmony_ci//
806f6ba60Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software
906f6ba60Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS,
1006f6ba60Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1106f6ba60Sopenharmony_ci// See the License for the specific language governing permissions and
1206f6ba60Sopenharmony_ci// limitations under the License.
1306f6ba60Sopenharmony_ci
1406f6ba60Sopenharmony_cisyntax = "proto3";
1506f6ba60Sopenharmony_ci
1606f6ba60Sopenharmony_cioption java_package = "ohos.devtools.datasources.transport.grpc.service";
1706f6ba60Sopenharmony_ci
1806f6ba60Sopenharmony_ciimport "profiler_service_types.proto";
1906f6ba60Sopenharmony_ci
2006f6ba60Sopenharmony_ci// RPC interface between profiler service and host service
2106f6ba60Sopenharmony_ci// Use protobuf plug-ins to convert proto define to
2206f6ba60Sopenharmony_ci// source and header files during the build process.
2306f6ba60Sopenharmony_ciservice IProfilerService {
2406f6ba60Sopenharmony_ci    // get all plugin infos and capabilities.
2506f6ba60Sopenharmony_ci    rpc GetCapabilities(GetCapabilitiesRequest) returns (GetCapabilitiesResponse);
2606f6ba60Sopenharmony_ci
2706f6ba60Sopenharmony_ci    // create tracing sesion and pass tracing config to plugins.
2806f6ba60Sopenharmony_ci    rpc CreateSession(CreateSessionRequest) returns (CreateSessionResponse);
2906f6ba60Sopenharmony_ci
3006f6ba60Sopenharmony_ci    // start tracing session, active server side tracing triggers.
3106f6ba60Sopenharmony_ci    rpc StartSession(StartSessionRequest) returns (StartSessionResponse);
3206f6ba60Sopenharmony_ci
3306f6ba60Sopenharmony_ci    // get server-side cached tracing data since current session started.
3406f6ba60Sopenharmony_ci    rpc FetchData(FetchDataRequest) returns (stream FetchDataResponse);
3506f6ba60Sopenharmony_ci
3606f6ba60Sopenharmony_ci    // stop tracing session, deactivate server side tracing triggers.
3706f6ba60Sopenharmony_ci    rpc StopSession(StopSessionRequest) returns (StopSessionResponse);
3806f6ba60Sopenharmony_ci
3906f6ba60Sopenharmony_ci    // destroy tracing session.
4006f6ba60Sopenharmony_ci    rpc DestroySession(DestroySessionRequest) returns (DestroySessionResponse);
4106f6ba60Sopenharmony_ci
4206f6ba60Sopenharmony_ci    // keep tracing session alive, call this interface will restart session expire count down task.
4306f6ba60Sopenharmony_ci    rpc KeepSession(KeepSessionRequest) returns (KeepSessionResponse);
4406f6ba60Sopenharmony_ci}
45