• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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