1 /* 2 * Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef TRACE_STREAMERTOKEN_H 17 #define TRACE_STREAMERTOKEN_H 18 19 #include <memory> 20 namespace SysTuning { 21 namespace TraceStreamer { 22 class AnimationFilter; 23 class SliceFilter; 24 class ProcessFilter; 25 class CpuFilter; 26 class MeasureFilter; 27 class FilterFilter; 28 class ClockFilterEx; 29 class StatFilter; 30 class BinderFilter; 31 class ArgsFilter; 32 class IrqFilter; 33 class SystemEventMeasureFilter; 34 #ifdef ENABLE_HISYSEVENT 35 class HiSysEventMeasureFilter; 36 #endif 37 class FrameFilter; 38 class APPStartupFilter; 39 class TaskPoolFilter; 40 #ifdef ENABLE_HIPERF 41 class PerfDataFilter; 42 #endif 43 class TraceStreamerFilters { 44 public: 45 TraceStreamerFilters(); 46 ~TraceStreamerFilters(); 47 void FilterClear(); 48 std::unique_ptr<AnimationFilter> animationFilter_; 49 std::unique_ptr<ClockFilterEx> clockFilter_; 50 std::unique_ptr<FilterFilter> filterFilter_; 51 std::unique_ptr<SliceFilter> sliceFilter_; 52 std::unique_ptr<ProcessFilter> processFilter_; 53 std::unique_ptr<CpuFilter> cpuFilter_; 54 std::unique_ptr<MeasureFilter> cpuMeasureFilter_; 55 std::unique_ptr<MeasureFilter> processMeasureFilter_; 56 std::unique_ptr<StatFilter> statFilter_; 57 std::unique_ptr<MeasureFilter> clockRateFilter_; 58 std::unique_ptr<MeasureFilter> clockEnableFilter_; 59 std::unique_ptr<MeasureFilter> clockDisableFilter_; 60 std::unique_ptr<MeasureFilter> clkRateFilter_; 61 std::unique_ptr<MeasureFilter> clkEnableFilter_; 62 std::unique_ptr<MeasureFilter> clkDisableFilter_; 63 std::unique_ptr<BinderFilter> binderFilter_; 64 std::unique_ptr<ArgsFilter> argsFilter_; 65 std::unique_ptr<IrqFilter> irqFilter_; 66 std::unique_ptr<SystemEventMeasureFilter> sysEventMemMeasureFilter_; 67 std::unique_ptr<SystemEventMeasureFilter> sysEventVMemMeasureFilter_; 68 std::unique_ptr<SystemEventMeasureFilter> sysEventSourceFilter_; 69 #ifdef ENABLE_HISYSEVENT 70 std::unique_ptr<HiSysEventMeasureFilter> hiSysEventMeasureFilter_; 71 #endif 72 std::unique_ptr<FrameFilter> frameFilter_; 73 std::unique_ptr<APPStartupFilter> appStartupFilter_; 74 std::unique_ptr<TaskPoolFilter> taskPoolFilter_; 75 #ifdef ENABLE_HIPERF 76 std::unique_ptr<PerfDataFilter> perfDataFilter_; 77 #endif 78 }; 79 } // namespace TraceStreamer 80 } // namespace SysTuning 81 82 #endif // TRACE_STREAMERTOKEN_H 83