1e509ee18Sopenharmony_ci#!/usr/bin/env python3
2e509ee18Sopenharmony_ci# -*- coding: utf-8 -*-
3e509ee18Sopenharmony_ci"""
4e509ee18Sopenharmony_ciCopyright (c) 2024 Huawei Device Co., Ltd.
5e509ee18Sopenharmony_ciLicensed under the Apache License, Version 2.0 (the "License");
6e509ee18Sopenharmony_ciyou may not use this file except in compliance with the License.
7e509ee18Sopenharmony_ciYou may obtain a copy of the License at
8e509ee18Sopenharmony_ci
9e509ee18Sopenharmony_ci    http://www.apache.org/licenses/LICENSE-2.0
10e509ee18Sopenharmony_ci
11e509ee18Sopenharmony_ciUnless required by applicable law or agreed to in writing, software
12e509ee18Sopenharmony_cidistributed under the License is distributed on an "AS IS" BASIS,
13e509ee18Sopenharmony_ciWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14e509ee18Sopenharmony_ciSee the License for the specific language governing permissions and
15e509ee18Sopenharmony_cilimitations under the License.
16e509ee18Sopenharmony_ci
17e509ee18Sopenharmony_ciDescription: Python CDP CPU Profiler.
18e509ee18Sopenharmony_ci"""
19e509ee18Sopenharmony_ci
20e509ee18Sopenharmony_cifrom dataclasses import dataclass
21e509ee18Sopenharmony_ci
22e509ee18Sopenharmony_ci
23e509ee18Sopenharmony_ci@dataclass
24e509ee18Sopenharmony_ciclass SamplingInterval:
25e509ee18Sopenharmony_ci    interval: int
26e509ee18Sopenharmony_ci
27e509ee18Sopenharmony_ci
28e509ee18Sopenharmony_cidef enable():
29e509ee18Sopenharmony_ci    return {'method': 'Profiler.enable'}
30e509ee18Sopenharmony_ci
31e509ee18Sopenharmony_ci
32e509ee18Sopenharmony_cidef disable():
33e509ee18Sopenharmony_ci    return {'method': 'Profiler.disable'}
34e509ee18Sopenharmony_ci
35e509ee18Sopenharmony_ci
36e509ee18Sopenharmony_cidef start():
37e509ee18Sopenharmony_ci    return {'method': 'Profiler.start'}
38e509ee18Sopenharmony_ci
39e509ee18Sopenharmony_ci
40e509ee18Sopenharmony_cidef stop():
41e509ee18Sopenharmony_ci    return {'method': 'Profiler.stop'}
42e509ee18Sopenharmony_ci
43e509ee18Sopenharmony_ci
44e509ee18Sopenharmony_cidef set_sampling_interval(params: SamplingInterval):
45e509ee18Sopenharmony_ci    return {'method': 'Profiler.setSamplingInterval',
46e509ee18Sopenharmony_ci            'params': {'interval': params.interval}}