rock_widget_collection  0.1
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
StreamRepresentation Class Reference

Public Member Functions

 StreamRepresentation (const aggregator::StreamStatus &status)
 
void updateData (const aggregator::StreamStatus &status, const base::Time &time)
 
QVariant data (int col, int role)
 

Static Public Member Functions

static QVariant headerData (int col, int role)
 

Public Attributes

QVariant name
 
QVariant bufferStatusSize
 
QVariant bufferStatusFill
 
QVariant droppedFull
 
QVariant droppedLate
 
QVariant droppedOrdering
 
QVariant sampleRate
 
std::deque< std::pair< base::Time, aggregator::StreamStatus > > statusHistory
 

Detailed Description

Definition at line 17 of file StreamAlignerWidget.cpp.

Constructor & Destructor Documentation

StreamRepresentation::StreamRepresentation ( const aggregator::StreamStatus &  status)
inline

Definition at line 19 of file StreamAlignerWidget.cpp.

20  {
21  name = QString::fromStdString(status.name);
22  };

Member Function Documentation

QVariant StreamRepresentation::data ( int  col,
int  role 
)
inline

Definition at line 65 of file StreamAlignerWidget.cpp.

66  {
67  if(role == Qt::DisplayRole || col == 1)
68  {
69  switch(col)
70  {
71  case 0:
72  return name;
73  break;
74  case 1:
75  if(role == BufferSize)
76  return bufferStatusSize;
77  if(role == BufferFill)
78  return bufferStatusFill;
79  break;
80  case 2:
81  return droppedFull;
82  break;
83  case 3:
84  return droppedLate;
85  break;
86  case 4:
87  return droppedOrdering;
88  break;
89  case 5:
90  return sampleRate;
91  break;
92  }
93  }
94  return QVariant();
95  }
static QVariant StreamRepresentation::headerData ( int  col,
int  role 
)
inlinestatic

Definition at line 97 of file StreamAlignerWidget.cpp.

98  {
99  if(role == Qt::DisplayRole)
100  {
101  switch(col)
102  {
103  case 0:
104  return QString("Name");
105  break;
106  case 1:
107  return QString("BufferStatus");
108  break;
109  case 2:
110  return QString("Dropped Full");
111  break;
112  case 3:
113  return QString("Dropped Late");
114  break;
115  case 4:
116  return QString("Dropped Ordering");
117  break;
118  case 5:
119  return QString("Samples/s Avg.(1/5/30)");
120  break;
121  }
122  }
123  return QVariant();
124  }
void StreamRepresentation::updateData ( const aggregator::StreamStatus &  status,
const base::Time &  time 
)
inline

Definition at line 24 of file StreamAlignerWidget.cpp.

25  {
26  bufferStatusSize = QVariant::fromValue<int>(status.buffer_size);
27  bufferStatusFill = QVariant::fromValue<int>(status.buffer_fill);
28  droppedFull= QString("%0").arg(status.samples_dropped_buffer_full);
29  droppedLate= QString("%0").arg(status.samples_dropped_late_arriving);
30  droppedOrdering= QString("%0").arg(status.samples_backward_in_time);
31 
32  // make sure the history buffer is of the desired size
33  const size_t avg_size = 30;
34  statusHistory.push_front( std::make_pair( time, status ) );
35  while( statusHistory.size() > (avg_size+1) )
36  statusHistory.pop_back();
37 
38  const size_t intervals[3] = {1,5,30};
39  float avg_rate[3];
40  for( int i=0; i<3; i++ )
41  {
42  float rate = std::numeric_limits<float>::quiet_NaN();
43  const size_t idx = intervals[i];
44  if( statusHistory.size() > idx )
45  {
46  long sample_diff =
47  statusHistory[idx].second.samples_received -
48  statusHistory.front().second.samples_received;
49 
50  base::Time time_diff =
51  statusHistory[idx].first -
52  statusHistory.front().first;
53 
54  rate = (float)sample_diff / time_diff.toSeconds();
55  }
56  avg_rate[i] = rate;
57  }
58 
59  sampleRate = QString("%0/%1/%2")
60  .arg( avg_rate[0], 0, 'f', 1 )
61  .arg( avg_rate[1], 0, 'f', 1 )
62  .arg( avg_rate[2], 0, 'f', 1 );
63  }
std::deque< std::pair< base::Time, aggregator::StreamStatus > > statusHistory

Member Data Documentation

QVariant StreamRepresentation::bufferStatusFill

Definition at line 128 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::bufferStatusSize

Definition at line 127 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::droppedFull

Definition at line 129 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::droppedLate

Definition at line 130 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::droppedOrdering

Definition at line 131 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::name

Definition at line 126 of file StreamAlignerWidget.cpp.

QVariant StreamRepresentation::sampleRate

Definition at line 132 of file StreamAlignerWidget.cpp.

std::deque<std::pair<base::Time, aggregator::StreamStatus> > StreamRepresentation::statusHistory

Definition at line 134 of file StreamAlignerWidget.cpp.


The documentation for this class was generated from the following file: