• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) Huawei Technologies Co., Ltd. 2024. 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 #include "xpower_stdtype.h"
17 namespace SysTuning {
18 namespace TraceStdtype {
AppendNewAppStatisticData(DataIndex componentType,uint64_t startTime,uint64_t dur,int64_t energy)19 size_t XPowerAppStatistic::AppendNewAppStatisticData(DataIndex componentType,
20                                                      uint64_t startTime,
21                                                      uint64_t dur,
22                                                      int64_t energy)
23 {
24     ids_.emplace_back(id_++);
25     componentTypes_.emplace_back(componentType);
26     timeStamps_.emplace_back(startTime);
27     durs_.emplace_back(dur);
28     energys_.emplace_back(energy);
29     return Size() - 1;
30 }
31 
ComponentTypesData() const32 const std::deque<DataIndex> &XPowerAppStatistic::ComponentTypesData() const
33 {
34     return componentTypes_;
35 }
36 
DurationsData() const37 const std::deque<int64_t> &XPowerAppStatistic::DurationsData() const
38 {
39     return durs_;
40 }
41 
EnergysData() const42 const std::deque<int64_t> &XPowerAppStatistic::EnergysData() const
43 {
44     return energys_;
45 }
46 
Clear()47 void XPowerAppStatistic::Clear()
48 {
49     CacheBase::Clear();
50     componentTypes_.clear();
51     durs_.clear();
52     energys_.clear();
53 }
54 
ClearExportedData()55 void XPowerAppStatistic::ClearExportedData()
56 {
57     EraseElements(ids_, timeStamps_, componentTypes_, durs_, energys_);
58 }
59 
AppendNewAppDetailCPUData(DataIndex threadName,uint64_t startTime,uint64_t threadTime,int64_t threadLoad,int64_t threadEnergy)60 size_t XPowerAppDetailCPU::AppendNewAppDetailCPUData(DataIndex threadName,
61                                                      uint64_t startTime,
62                                                      uint64_t threadTime,
63                                                      int64_t threadLoad,
64                                                      int64_t threadEnergy)
65 {
66     ids_.emplace_back(id_++);
67     threadNames_.emplace_back(threadName);
68     timeStamps_.emplace_back(startTime);
69     threadTimes_.emplace_back(threadTime);
70     threadLoads_.emplace_back(threadLoad);
71     threadEnergys_.emplace_back(threadEnergy);
72     return Size() - 1;
73 }
74 
ThreadNamesData() const75 const std::deque<DataIndex> &XPowerAppDetailCPU::ThreadNamesData() const
76 {
77     return threadNames_;
78 }
79 
ThreadTimesData() const80 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadTimesData() const
81 {
82     return threadTimes_;
83 }
84 
ThreadLoadsData() const85 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadLoadsData() const
86 {
87     return threadLoads_;
88 }
89 
ThreadEnergysData() const90 const std::deque<int64_t> &XPowerAppDetailCPU::ThreadEnergysData() const
91 {
92     return threadEnergys_;
93 }
94 
Clear()95 void XPowerAppDetailCPU::Clear()
96 {
97     CacheBase::Clear();
98     threadNames_.clear();
99     threadTimes_.clear();
100     threadLoads_.clear();
101     threadEnergys_.clear();
102 }
103 
ClearExportedData()104 void XPowerAppDetailCPU::ClearExportedData()
105 {
106     EraseElements(ids_, timeStamps_, threadNames_, threadTimes_, threadLoads_, threadEnergys_);
107 }
108 
AppendNewAppDetailGPUData(int64_t frequency,uint64_t startTime,int64_t idleTime,int64_t runTime)109 size_t XPowerAppDetailGPU::AppendNewAppDetailGPUData(int64_t frequency,
110                                                      uint64_t startTime,
111                                                      int64_t idleTime,
112                                                      int64_t runTime)
113 {
114     ids_.emplace_back(id_++);
115     frequencys_.emplace_back(frequency);
116     timeStamps_.emplace_back(startTime);
117     idleTimes_.emplace_back(idleTime);
118     runTimes_.emplace_back(runTime);
119     return Size() - 1;
120 }
121 
FrequencysData() const122 const std::deque<int64_t> &XPowerAppDetailGPU::FrequencysData() const
123 {
124     return frequencys_;
125 }
126 
IdleTimesData() const127 const std::deque<int64_t> &XPowerAppDetailGPU::IdleTimesData() const
128 {
129     return idleTimes_;
130 }
131 
RuntimesData() const132 const std::deque<int64_t> &XPowerAppDetailGPU::RuntimesData() const
133 {
134     return runTimes_;
135 }
136 
Clear()137 void XPowerAppDetailGPU::Clear()
138 {
139     CacheBase::Clear();
140     frequencys_.clear();
141     idleTimes_.clear();
142     runTimes_.clear();
143 }
144 
ClearExportedData()145 void XPowerAppDetailGPU::ClearExportedData()
146 {
147     EraseElements(ids_, timeStamps_, frequencys_, idleTimes_, runTimes_);
148 }
149 
AppendNewAppDetailWifiData(uint64_t startTime,int64_t txPackets,int64_t rxPackets,int64_t txBytes,int64_t rxBytes)150 size_t XPowerAppDetailWifi::AppendNewAppDetailWifiData(uint64_t startTime,
151                                                        int64_t txPackets,
152                                                        int64_t rxPackets,
153                                                        int64_t txBytes,
154                                                        int64_t rxBytes)
155 {
156     ids_.emplace_back(id_++);
157     timeStamps_.emplace_back(startTime);
158     txPackets_.emplace_back(txPackets);
159     rxPackets_.emplace_back(rxPackets);
160     txBytes_.emplace_back(txBytes);
161     rxBytes_.emplace_back(rxBytes);
162     return Size() - 1;
163 }
164 
TxPacketsData() const165 const std::deque<int64_t> &XPowerAppDetailWifi::TxPacketsData() const
166 {
167     return txPackets_;
168 }
169 
RxPacketsData() const170 const std::deque<int64_t> &XPowerAppDetailWifi::RxPacketsData() const
171 {
172     return rxPackets_;
173 }
174 
TxBytesData() const175 const std::deque<int64_t> &XPowerAppDetailWifi::TxBytesData() const
176 {
177     return txBytes_;
178 }
179 
RxBytesData() const180 const std::deque<int64_t> &XPowerAppDetailWifi::RxBytesData() const
181 {
182     return rxBytes_;
183 }
184 
Clear()185 void XPowerAppDetailWifi::Clear()
186 {
187     CacheBase::Clear();
188     txPackets_.clear();
189     rxPackets_.clear();
190     txBytes_.clear();
191     rxBytes_.clear();
192 }
193 
ClearExportedData()194 void XPowerAppDetailWifi::ClearExportedData()
195 {
196     EraseElements(ids_, timeStamps_, txPackets_, rxPackets_, txBytes_, rxBytes_);
197 }
198 
AppendNewAppDetailDisplayData(const XPowerAppDetailDisplayRow & row)199 size_t XPowerAppDetailDisplay::AppendNewAppDetailDisplayData(const XPowerAppDetailDisplayRow &row)
200 {
201     ids_.emplace_back(id_++);
202     timeStamps_.emplace_back(row.startTime);
203     count1Hertzs_.emplace_back(row.count1Hertz);
204     count5Hertzs_.emplace_back(row.count5Hertz);
205     count10Hertzs_.emplace_back(row.count10Hertz);
206     count15Hertzs_.emplace_back(row.count15Hertz);
207     count24Hertzs_.emplace_back(row.count24Hertz);
208     count30Hertzs_.emplace_back(row.count30Hertz);
209     count45Hertzs_.emplace_back(row.count45Hertz);
210     count60Hertzs_.emplace_back(row.count60Hertz);
211     count90Hertzs_.emplace_back(row.count90Hertz);
212     count120Hertzs_.emplace_back(row.count120Hertz);
213     count180Hertzs_.emplace_back(row.count180Hertz);
214     return Size() - 1;
215 }
216 
Count1HertzsData() const217 const std::deque<int64_t> &XPowerAppDetailDisplay::Count1HertzsData() const
218 {
219     return count1Hertzs_;
220 }
221 
Count5HertzsData() const222 const std::deque<int64_t> &XPowerAppDetailDisplay::Count5HertzsData() const
223 {
224     return count5Hertzs_;
225 }
226 
Count10HertzsData() const227 const std::deque<int64_t> &XPowerAppDetailDisplay::Count10HertzsData() const
228 {
229     return count10Hertzs_;
230 }
231 
Count15HertzsData() const232 const std::deque<int64_t> &XPowerAppDetailDisplay::Count15HertzsData() const
233 {
234     return count15Hertzs_;
235 }
236 
Count24HertzsData() const237 const std::deque<int64_t> &XPowerAppDetailDisplay::Count24HertzsData() const
238 {
239     return count24Hertzs_;
240 }
Count30HertzsData() const241 const std::deque<int64_t> &XPowerAppDetailDisplay::Count30HertzsData() const
242 {
243     return count30Hertzs_;
244 }
245 
Count45HertzsData() const246 const std::deque<int64_t> &XPowerAppDetailDisplay::Count45HertzsData() const
247 {
248     return count45Hertzs_;
249 }
250 
Count60HertzsData() const251 const std::deque<int64_t> &XPowerAppDetailDisplay::Count60HertzsData() const
252 {
253     return count60Hertzs_;
254 }
255 
Count90HertzsData() const256 const std::deque<int64_t> &XPowerAppDetailDisplay::Count90HertzsData() const
257 {
258     return count90Hertzs_;
259 }
260 
Count120HertzsData() const261 const std::deque<int64_t> &XPowerAppDetailDisplay::Count120HertzsData() const
262 {
263     return count120Hertzs_;
264 }
265 
Count180HertzsData() const266 const std::deque<int64_t> &XPowerAppDetailDisplay::Count180HertzsData() const
267 {
268     return count180Hertzs_;
269 }
270 
Clear()271 void XPowerAppDetailDisplay::Clear()
272 {
273     CacheBase::Clear();
274     count1Hertzs_.clear();
275     count5Hertzs_.clear();
276     count10Hertzs_.clear();
277     count15Hertzs_.clear();
278     count24Hertzs_.clear();
279     count30Hertzs_.clear();
280     count45Hertzs_.clear();
281     count60Hertzs_.clear();
282     count90Hertzs_.clear();
283     count120Hertzs_.clear();
284     count180Hertzs_.clear();
285 }
286 
ClearExportedData()287 void XPowerAppDetailDisplay::ClearExportedData()
288 {
289     EraseElements(ids_, timeStamps_, count1Hertzs_, count5Hertzs_, count10Hertzs_);
290     EraseElements(count15Hertzs_, count24Hertzs_, count30Hertzs_, count45Hertzs_, count60Hertzs_);
291     EraseElements(count90Hertzs_, count120Hertzs_, count180Hertzs_);
292 }
293 
AppendNewComponentTopData(const XPowerComponentTopRow & row)294 size_t XPowerComponentTop::AppendNewComponentTopData(const XPowerComponentTopRow &row)
295 {
296     ids_.emplace_back(id_++);
297     timeStamps_.emplace_back(row.startTime);
298     componentTypes_.emplace_back(row.componentType);
299     appnames_.emplace_back(row.appname);
300     backgroundDurations_.emplace_back(row.backgroundDuration);
301     backgroundEnergys_.emplace_back(row.backgroundEnergy);
302     foregroundDurations_.emplace_back(row.foregroundDuration);
303     foregroundEnergys_.emplace_back(row.foregroundEnergy);
304     screenOffDurations_.emplace_back(row.screenOffDuration);
305     screenOffEnergys_.emplace_back(row.screenOffEnergy);
306     screenOnDurations_.emplace_back(row.screenOnDuration);
307     screenOnEnergys_.emplace_back(row.screenOnEnergy);
308     cameraIds_.emplace_back(row.cameraId);
309     uids_.emplace_back(row.uid);
310     loads_.emplace_back(row.load);
311     appUsageDurations_.emplace_back(row.appUsageDuration);
312     appUsageEnergys_.emplace_back(row.appUsageEnergy);
313     return Size() - 1;
314 }
315 
ComponentTypesData() const316 const std::deque<DataIndex> &XPowerComponentTop::ComponentTypesData() const
317 {
318     return componentTypes_;
319 }
320 
AppnamesData() const321 const std::deque<int64_t> &XPowerComponentTop::AppnamesData() const
322 {
323     return appnames_;
324 }
325 
BackgroundDurationsData() const326 const std::deque<int64_t> &XPowerComponentTop::BackgroundDurationsData() const
327 {
328     return backgroundDurations_;
329 }
330 
BackgroundEnergysData() const331 const std::deque<int64_t> &XPowerComponentTop::BackgroundEnergysData() const
332 {
333     return backgroundEnergys_;
334 }
335 
ForegroundDurationsData() const336 const std::deque<int64_t> &XPowerComponentTop::ForegroundDurationsData() const
337 {
338     return foregroundDurations_;
339 }
340 
ForegroundEnergysData() const341 const std::deque<int64_t> &XPowerComponentTop::ForegroundEnergysData() const
342 {
343     return foregroundEnergys_;
344 }
345 
ScreenOffDurationsData() const346 const std::deque<int64_t> &XPowerComponentTop::ScreenOffDurationsData() const
347 {
348     return screenOffDurations_;
349 }
350 
ScreenOffEnergysData() const351 const std::deque<int64_t> &XPowerComponentTop::ScreenOffEnergysData() const
352 {
353     return screenOffEnergys_;
354 }
355 
ScreenOnDurationsData() const356 const std::deque<int64_t> &XPowerComponentTop::ScreenOnDurationsData() const
357 {
358     return screenOnDurations_;
359 }
360 
ScreenOnEnergysData() const361 const std::deque<int64_t> &XPowerComponentTop::ScreenOnEnergysData() const
362 {
363     return screenOnEnergys_;
364 }
365 
CameraIdsData() const366 const std::deque<int64_t> &XPowerComponentTop::CameraIdsData() const
367 {
368     return cameraIds_;
369 }
370 
UidsData() const371 const std::deque<int64_t> &XPowerComponentTop::UidsData() const
372 {
373     return uids_;
374 }
375 
LoadsData() const376 const std::deque<int64_t> &XPowerComponentTop::LoadsData() const
377 {
378     return loads_;
379 }
380 
AppUsageDurationsData() const381 const std::deque<int64_t> &XPowerComponentTop::AppUsageDurationsData() const
382 {
383     return appUsageDurations_;
384 }
385 
AppUsageEnergysData() const386 const std::deque<int64_t> &XPowerComponentTop::AppUsageEnergysData() const
387 {
388     return appUsageEnergys_;
389 }
390 
Clear()391 void XPowerComponentTop::Clear()
392 {
393     CacheBase::Clear();
394     componentTypes_.clear();
395     appnames_.clear();
396     backgroundDurations_.clear();
397     backgroundEnergys_.clear();
398     foregroundDurations_.clear();
399     foregroundEnergys_.clear();
400     screenOffDurations_.clear();
401     screenOffEnergys_.clear();
402     screenOnDurations_.clear();
403     screenOnEnergys_.clear();
404     cameraIds_.clear();
405     uids_.clear();
406     loads_.clear();
407     appUsageDurations_.clear();
408     appUsageEnergys_.clear();
409 }
410 
ClearExportedData()411 void XPowerComponentTop::ClearExportedData()
412 {
413     EraseElements(ids_, timeStamps_, componentTypes_, appnames_, backgroundDurations_, backgroundEnergys_);
414     EraseElements(foregroundDurations_, foregroundEnergys_, screenOffDurations_, screenOffEnergys_, uids_);
415     EraseElements(screenOnDurations_, screenOnEnergys_, cameraIds_, loads_, appUsageDurations_, appUsageEnergys_);
416 }
417 
418 } // namespace TraceStdtype
419 } // namespace SysTuning