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 Thread& GetConstThreadData(InternalTid internalTid) const; 37 const CallStack& GetConstInternalSlicesData() const; 38 const Filter& GetConstFilterData() const; 39 const Raw& GetConstRawTableData() const; 40 const Measure& GetConstMeasureData() const; 41 const ThreadMeasureFilter& GetConstThreadMeasureFilterData() const; 42 const ThreadState& GetConstThreadStateData() const; 43 const SchedSlice& GetConstSchedSliceData() const; 44 const CpuMeasureFilter& GetConstCpuMeasureData() const; 45 const ThreadMeasureFilter& GetConstThreadFilterData() const; 46 const Instants& GetConstInstantsData() const; 47 const ProcessMeasureFilter& GetConstProcessFilterData() const; 48 const ProcessMeasureFilter& GetConstProcessMeasureFilterData() const; 49 const ClockEventData& GetConstClockEventFilterData() const; 50 const ClkEventData& GetConstClkEventFilterData() const; 51 const std::string& GetConstSchedStateData(uint64_t rowId) const; 52 uint64_t TraceStartTime() const; 53 uint64_t TraceEndTime() const; 54 const StatAndInfo& GetConstStatAndInfo() const; 55 const MetaData& GetConstMetaData() const; 56 const SymbolsData& GetConstSymbolsData() const; 57 const SysCall& GetConstSysCallData() const; 58 const LogInfo& GetConstHilogData() const; 59 const ArgSet& GetConstArgSetData() const; 60 const DataType& GetConstDataTypeData() const; 61 const SysMeasureFilter& GetConstSysMeasureFilterData() const; 62 }; 63 } // namespace TraceStreamer 64 } // namespace SysTuning 65 #endif 66