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 TASK_POOL_STDTYPE_H 17 #define TASK_POOL_STDTYPE_H 18 #include "base_stdtype.h" 19 20 namespace SysTuning { 21 namespace TraceStdtype { 22 class TaskPoolInfo : public CacheBase { 23 public: 24 size_t AppendAllocationTaskData(uint32_t allocationTaskRow, 25 uint32_t allocationItid, 26 uint64_t taskIds, 27 uint32_t priority, 28 uint32_t executeState); 29 size_t AppendExecuteTaskData(uint32_t executeTaskRow, uint32_t executeItid, uint64_t taskIds); 30 size_t AppendReturnTaskData(uint32_t returnTaskRow, uint32_t returnItid, uint64_t taskIds, uint32_t returnState); 31 void UpdateAllocationTaskData(uint32_t index, 32 uint32_t allocationTaskRow, 33 uint32_t allocationItid, 34 uint32_t priority, 35 uint32_t executeState); 36 void UpdateExecuteTaskData(uint32_t index, uint32_t executeTaskRow, uint64_t executeItid); 37 void UpdateReturnTaskData(uint32_t index, uint32_t returnTaskRow, uint32_t returnItid, uint32_t returnState); 38 void AppendTimeoutRow(uint32_t index, uint32_t timeoutRow); 39 40 const std::deque<uint32_t> &AllocationTaskRows() const; 41 const std::deque<uint32_t> &ExecuteTaskRows() const; 42 const std::deque<uint32_t> &ReturnTaskRows() const; 43 const std::deque<uint32_t> &AllocationItids() const; 44 const std::deque<uint32_t> &ExecuteItids() const; 45 const std::deque<uint32_t> &ReturnItids() const; 46 const std::deque<uint64_t> &TaskIds() const; 47 const std::deque<uint32_t> &Prioritys() const; 48 const std::deque<uint32_t> &ExecuteStates() const; 49 const std::deque<uint32_t> &ReturnStates() const; 50 const std::deque<uint32_t> &TimeoutRows() const; Clear()51 void Clear() override 52 { 53 CacheBase::Clear(); 54 allocationTaskRows_.clear(); 55 executeTaskRows_.clear(); 56 returnTaskRows_.clear(); 57 allocationItids_.clear(); 58 executeItids_.clear(); 59 returnItids_.clear(); 60 taskIds_.clear(); 61 prioritys_.clear(); 62 executeStates_.clear(); 63 returnStates_.clear(); 64 timeoutRows_.clear(); 65 } 66 67 private: 68 std::deque<uint32_t> allocationTaskRows_ = {}; 69 std::deque<uint32_t> executeTaskRows_ = {}; 70 std::deque<uint32_t> returnTaskRows_ = {}; 71 std::deque<uint32_t> allocationItids_ = {}; 72 std::deque<uint32_t> executeItids_ = {}; 73 std::deque<uint32_t> returnItids_ = {}; 74 std::deque<uint64_t> taskIds_ = {}; 75 std::deque<uint32_t> prioritys_ = {}; 76 std::deque<uint32_t> executeStates_ = {}; 77 std::deque<uint32_t> returnStates_ = {}; 78 std::deque<uint32_t> timeoutRows_ = {}; 79 }; 80 } // namespace TraceStdtype 81 } // namespace SysTuning 82 #endif // TASK_POOL_STDTYPE_H 83