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 SyscallFilter; 34 class SystemEventMeasureFilter; 35 class ConfigFilter; 36 #ifdef ENABLE_HISYSEVENT 37 class HiSysEventMeasureFilter; 38 #endif 39 class FrameFilter; 40 class APPStartupFilter; 41 class TaskPoolFilter; 42 #ifdef ENABLE_HIPERF 43 class PerfDataFilter; 44 #endif 45 class TraceStreamerFilters { 46 public: 47 TraceStreamerFilters(); 48 ~TraceStreamerFilters(); 49 void FilterClear(); 50 std::unique_ptr<AnimationFilter> animationFilter_; 51 std::unique_ptr<ClockFilterEx> clockFilter_; 52 std::unique_ptr<FilterFilter> filterFilter_; 53 std::unique_ptr<SliceFilter> sliceFilter_; 54 std::unique_ptr<ProcessFilter> processFilter_; 55 std::unique_ptr<CpuFilter> cpuFilter_; 56 std::unique_ptr<MeasureFilter> measureFilter_; 57 std::unique_ptr<StatFilter> statFilter_; 58 std::unique_ptr<BinderFilter> binderFilter_; 59 std::unique_ptr<ArgsFilter> argsFilter_; 60 std::unique_ptr<IrqFilter> irqFilter_; 61 std::unique_ptr<SyscallFilter> syscallFilter_; 62 std::unique_ptr<SystemEventMeasureFilter> sysEventMemMeasureFilter_; 63 std::unique_ptr<SystemEventMeasureFilter> sysEventVMemMeasureFilter_; 64 std::unique_ptr<SystemEventMeasureFilter> sysEventSourceFilter_; 65 std::unique_ptr<ConfigFilter> configFilter_; 66 #ifdef ENABLE_HISYSEVENT 67 std::unique_ptr<HiSysEventMeasureFilter> hiSysEventMeasureFilter_; 68 #endif 69 std::unique_ptr<FrameFilter> frameFilter_; 70 std::unique_ptr<APPStartupFilter> appStartupFilter_; 71 std::unique_ptr<TaskPoolFilter> taskPoolFilter_; 72 #ifdef ENABLE_HIPERF 73 std::unique_ptr<PerfDataFilter> perfDataFilter_; 74 #endif 75 }; 76 } // namespace TraceStreamer 77 } // namespace SysTuning 78 79 #endif // TRACE_STREAMERTOKEN_H 80