1 /* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 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 SliceFilter; 23 class ProcessFilter; 24 class CpuFilter; 25 class MeasureFilter; 26 class FilterFilter; 27 class ClockFilter; 28 class SymbolsFilter; 29 class StatFilter; 30 class BinderFilter; 31 class ArgsFilter; 32 class IrqFilter; 33 class SystemEventMeasureFilter; 34 class HiSysEventMeasureFilter; 35 #if WITH_PERF 36 class PerfDataFilter; 37 #endif 38 class TraceStreamerFilters { 39 public: 40 TraceStreamerFilters(); 41 ~TraceStreamerFilters(); 42 std::unique_ptr<ClockFilter> clockFilter_; 43 std::unique_ptr<FilterFilter> filterFilter_; 44 std::unique_ptr<SliceFilter> sliceFilter_; 45 std::unique_ptr<ProcessFilter> processFilter_; 46 std::unique_ptr<CpuFilter> cpuFilter_; 47 std::unique_ptr<MeasureFilter> cpuMeasureFilter_; 48 std::unique_ptr<MeasureFilter> threadMeasureFilter_; 49 std::unique_ptr<MeasureFilter> threadFilter_; 50 std::unique_ptr<MeasureFilter> processMeasureFilter_; 51 std::unique_ptr<MeasureFilter> processFilterFilter_; 52 std::unique_ptr<SymbolsFilter> symbolsFilter_; 53 std::unique_ptr<StatFilter> statFilter_; 54 std::unique_ptr<MeasureFilter> clockRateFilter_; 55 std::unique_ptr<MeasureFilter> clockEnableFilter_; 56 std::unique_ptr<MeasureFilter> clockDisableFilter_; 57 std::unique_ptr<MeasureFilter> clkRateFilter_; 58 std::unique_ptr<MeasureFilter> clkEnableFilter_; 59 std::unique_ptr<MeasureFilter> clkDisableFilter_; 60 std::unique_ptr<BinderFilter> binderFilter_; 61 std::unique_ptr<ArgsFilter> argsFilter_; 62 std::unique_ptr<IrqFilter> irqFilter_; 63 std::unique_ptr<SystemEventMeasureFilter> sysEventMemMeasureFilter_; 64 std::unique_ptr<SystemEventMeasureFilter> sysEventVMemMeasureFilter_; 65 std::unique_ptr<SystemEventMeasureFilter> sysEventSourceFilter_; 66 std::unique_ptr<HiSysEventMeasureFilter> hiSysEventMeasureFilter_; 67 #if WITH_PERF 68 std::unique_ptr<PerfDataFilter> perfDataFilter_; 69 #endif 70 }; 71 } // namespace TraceStreamer 72 } // namespace SysTuning 73 74 #endif // TRACE_STREAMERTOKEN_H 75