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_DATA_CACHE_READER_H 17 #define TRACE_DATA_CACHE_READER_H 18 19 #include "log.h" 20 #include "trace_data_cache_base.h" 21 #include "trace_stdtype.h" 22 23 namespace SysTuning { 24 namespace TraceStreamer { 25 using namespace TraceStdtype; 26 class TraceDataCacheReader : virtual public TraceDataCacheBase { 27 public: 28 TraceDataCacheReader() = default; 29 TraceDataCacheReader(const TraceDataCacheReader&) = delete; 30 TraceDataCacheReader& operator=(const TraceDataCacheReader&) = delete; 31 ~TraceDataCacheReader() override; 32 33 public: 34 const std::string& GetDataFromDict(DataIndex id) const; 35 const Process& GetConstProcessData(InternalPid internalPid) const; 36 const std::deque<Process>& GetConstProcessData() const; 37 const Thread& GetConstThreadData(InternalTid internalTid) const; 38 const std::deque<Thread>& GetConstThreadData() const; 39 const CallStack& GetConstInternalSlicesData() const; 40 const CallStack& GetConstIrqData() const; 41 const Filter& GetConstFilterData() const; 42 const Raw& GetConstRawTableData() const; 43 const Measure& GetConstMeasureData() const; 44 const Measure& GetConstSysMemMeasureData() const; 45 const Measure& GetConstProcessMeasureData() const; 46 const ThreadMeasureFilter& GetConstThreadMeasureFilterData() const; 47 const ThreadStateData& GetConstThreadStateData() const; 48 const SchedSlice& GetConstSchedSliceData() const; 49 const CpuMeasureFilter& GetConstCpuMeasureData() const; 50 const ThreadMeasureFilter& GetConstThreadFilterData() const; 51 const Instants& GetConstInstantsData() const; 52 const ProcessMeasureFilter& GetConstProcessFilterData() const; 53 const ProcessMeasureFilter& GetConstProcessMeasureFilterData() const; 54 const ClockEventData& GetConstClockEventFilterData() const; 55 const ClkEventData& GetConstClkEventFilterData() const; 56 const std::string& GetConstSchedStateData(uint64_t rowId) const; 57 uint64_t TraceStartTime() const; 58 uint64_t TraceEndTime() const; 59 const StatAndInfo& GetConstStatAndInfo() const; 60 const MetaData& GetConstMetaData() const; 61 const SymbolsData& GetConstSymbolsData() const; 62 const SysCall& GetConstSysCallData() const; 63 const LogInfo& GetConstHilogData() const; 64 const NativeHook& GetConstNativeHookData() const; 65 const NativeHookFrame& GetConstNativeHookFrameData() const; 66 const NativeHookStatistic& GetConstNativeHookStatisticData() const; 67 const Hidump& GetConstHidumpData() const; 68 const PerfCallChain& GetConstPerfCallChainData() const; 69 const PerfFiles& GetConstPerfFilesData() const; 70 const PerfSample& GetConstPerfSampleData() const; 71 const PerfThread& GetConstPerfThreadData() const; 72 const PerfReport& GetConstPerfReportData() const; 73 const ArgSet& GetConstArgSetData() const; 74 const DataType& GetConstDataTypeData() const; 75 const SysMeasureFilter& GetConstSysMeasureFilterData() const; 76 const NetDetailData& GetConstNetworkData() const; 77 const CpuUsageDetailData& GetConstCpuUsageInfoData() const; 78 const DiskIOData& GetConstDiskIOData() const; 79 const LiveProcessDetailData& GetConstLiveProcessData() const; 80 const FileSystemSample& GetConstFileSystemSample() const; 81 const DeviceStateData& GetConstDeviceStateData() const; 82 const EbpfCallStackData& GetConstEbpfCallStackData() const; 83 const PagedMemorySampleData& GetConstPagedMemorySampleData() const; 84 #ifdef WITH_EBPF_HELP 85 const EbpfProcessMaps& GetConstEbpfProcessMaps() const; 86 const EbpfElf& GetConstEbpfElf() const; 87 const EbpfElfSymbol& GetConstEbpfElfSymbol() const; 88 #endif 89 const AppNames& GetConstAppNamesData() const; 90 const SysEventMeasureData& GetConstSyseventMeasureData() const; 91 const TraceConfigData& GetConstTraceConfigData() const; 92 const SmapsData& GetConstSmapsData() const; 93 const BioLatencySampleData& GetConstBioLatencySampleData() const; 94 const ClockSnapshotData& GetConstClockSnapshotData() const; 95 const DataSourceClockIdData& GetConstDataSourceClockIdData() const; 96 const FrameSlice& GetConstFameSliceData() const; 97 const FrameMaps& GetConstFameMapsData() const; 98 const GPUSlice& GetConstGPUSliceData() const; 99 const TaskPoolInfo& GetConstTaskPoolData() const; 100 const JsHeapFiles& GetConstJsHeapFilesData() const; 101 const JsHeapEdges& GetConstJsHeapEdgesData() const; 102 const JsHeapInfo& GetConstJsHeapInfoData() const; 103 const JsHeapLocation& GetConstJsHeapLocationData() const; 104 const JsHeapNodes& GetConstJsHeapNodesData() const; 105 const JsHeapSample& GetConstJsHeapSampleData() const; 106 const JsHeapString& GetConstJsHeapStringData() const; 107 const JsHeapTraceFuncInfo& GetConstJsHeapTraceFuncInfoData() const; 108 const JsHeapTraceNode& GetConstJsHeapTraceNodeData() const; 109 const JsCpuProfilerNode& GetConstJsCpuProfilerNodeData() const; 110 const JsCpuProfilerSample& GetConstJsCpuProfilerSampleData() const; 111 const JsConfig& GetConstJsConfigData() const; 112 const AppStartup& GetConstAppStartupData() const; 113 const SoStaticInitalization& GetConstStaticInitalizationData() const; 114 const Animation& GetConstAnimation() const; 115 const DeviceInfo& GetConstDeviceInfo() const; 116 const DynamicFrame& GetConstDynamicFrame() const; 117 const AshMemData& GetConstAshMemData() const; 118 const DmaMemData& GetConstDmaMemData() const; 119 const GpuProcessMemData& GetConstGpuProcessMemData() const; 120 const GpuWindowMemData& GetConstGpuWindowMemData() const; 121 }; 122 } // namespace TraceStreamer 123 } // namespace SysTuning 124 #endif 125