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 #include "demo_trace_data_cache_writer.h" 17 #include "log.h" 18 namespace SysTuning { 19 namespace TraceStreamer { 20 using namespace TraceStdtype; ~DemoTraceDataCacheWriter()21 DemoTraceDataCacheWriter::~DemoTraceDataCacheWriter() {} 22 GetGpuCounterData()23 GpuCounter* DemoTraceDataCacheWriter::GetGpuCounterData() 24 { 25 return &gpuCounter_; 26 } GetGpuCounterObjectData()27 GpuCounterObject* DemoTraceDataCacheWriter::GetGpuCounterObjectData() 28 { 29 return &gpuCounterObject_; 30 } GetSliceObjectData()31 SliceObject* DemoTraceDataCacheWriter::GetSliceObjectData() 32 { 33 return &sliceObject_; 34 } GetSliceTableData()35 SliceData* DemoTraceDataCacheWriter::GetSliceTableData() 36 { 37 return &sliceData_; 38 } GetMetaData()39 MetaData* DemoTraceDataCacheWriter::GetMetaData() 40 { 41 return &metaData_; 42 } MixTraceTime(uint64_t timestampMin,uint64_t timestampMax)43 void DemoTraceDataCacheWriter::MixTraceTime(uint64_t timestampMin, uint64_t timestampMax) 44 { 45 if (timestampMin == std::numeric_limits<uint64_t>::max() || timestampMax == 0) { 46 return; 47 } 48 if (traceStartTime_ != std::numeric_limits<uint64_t>::max()) { 49 traceStartTime_ = std::max(traceStartTime_, timestampMin); 50 } else { 51 traceStartTime_ = timestampMin; 52 } 53 if (traceEndTime_) { 54 traceEndTime_ = std::min(traceEndTime_, timestampMax); 55 } else { 56 traceEndTime_ = timestampMax; 57 } 58 } Clear()59 void DemoTraceDataCacheWriter::Clear() 60 { 61 gpuCounter_.Clear(); 62 gpuCounterObject_.Clear(); 63 sliceObject_.Clear(); 64 sliceData_.Clear(); 65 } 66 } // namespace TraceStreamer 67 } // namespace SysTuning 68