Pothos  0.1.1
The Pothos dataflow programming software suite
 All Classes Namespaces Files Functions Variables Typedefs Friends Macros
WorkStats.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 #include <Pothos/Config.hpp>
13 #include <chrono>
14 
15 namespace Pothos {
16 
17 /*
18 struct PortStats
19 {
20  PortStats(void);
21  unsigned long long timeLastBuffer;
22  unsigned long long timeLastMessage;
23  unsigned long long timeLastLabel;
24  unsigned long long totalElements;
25  unsigned long long totalMessages;
26  unsigned long long totalLabels;
27 };
28 */
29 
34 {
35  WorkStats(void);
36  std::chrono::high_resolution_clock::duration totalTimeWork;
37  std::chrono::high_resolution_clock::duration totalTimePreWork;
38  std::chrono::high_resolution_clock::duration totalTimePostWork;
39  unsigned long long numWorkCalls;
40  unsigned long long bytesConsumed;
41  unsigned long long bytesProduced;
42  unsigned long long msgsConsumed;
43  unsigned long long msgsProduced;
44  std::chrono::high_resolution_clock::time_point timeLastConsumed;
45  std::chrono::high_resolution_clock::time_point timeLastProduced;
46  std::chrono::high_resolution_clock::time_point timeLastWork;
47  std::chrono::high_resolution_clock::time_point timeStatsQuery;
48 };
49 
52 {
53  inline TimeAccumulator(std::chrono::high_resolution_clock::duration &t):
54  t(t), start(std::chrono::high_resolution_clock::now())
55  {
56  return;
57  }
58  inline ~TimeAccumulator(void)
59  {
60  t += std::chrono::high_resolution_clock::now() - start;
61  }
62  std::chrono::high_resolution_clock::duration &t;
63  const std::chrono::high_resolution_clock::time_point start;
64 };
65 
66 } //namespace Pothos
std::chrono::high_resolution_clock::duration & t
Definition: WorkStats.hpp:62
#define POTHOS_API
Definition: Config.hpp:41
unsigned long long msgsProduced
Definition: WorkStats.hpp:43
std::chrono::high_resolution_clock::time_point timeStatsQuery
Definition: WorkStats.hpp:47
~TimeAccumulator(void)
Definition: WorkStats.hpp:58
unsigned long long bytesConsumed
Definition: WorkStats.hpp:40
std::chrono::high_resolution_clock::duration totalTimePreWork
Definition: WorkStats.hpp:37
std::chrono::high_resolution_clock::time_point timeLastWork
Definition: WorkStats.hpp:46
unsigned long long msgsConsumed
Definition: WorkStats.hpp:42
unsigned long long bytesProduced
Definition: WorkStats.hpp:41
TimeAccumulator(std::chrono::high_resolution_clock::duration &t)
Definition: WorkStats.hpp:53
Helper routine to deal with automatically accumulating time durations.
Definition: WorkStats.hpp:51
std::chrono::high_resolution_clock::duration totalTimePostWork
Definition: WorkStats.hpp:38
const std::chrono::high_resolution_clock::time_point start
Definition: WorkStats.hpp:63
std::chrono::high_resolution_clock::time_point timeLastConsumed
Definition: WorkStats.hpp:44
std::chrono::high_resolution_clock::time_point timeLastProduced
Definition: WorkStats.hpp:45
unsigned long long numWorkCalls
Definition: WorkStats.hpp:39
std::chrono::high_resolution_clock::duration totalTimeWork
Definition: WorkStats.hpp:36
Definition: WorkStats.hpp:33