CAN IO perf counters

This commit is contained in:
Pavel Kirienko
2014-03-26 18:18:24 +04:00
parent 09e3ad0187
commit 2798252fd4
7 changed files with 89 additions and 30 deletions
+2 -2
View File
@@ -142,9 +142,9 @@ public:
virtual int getNumFilters() const = 0;
/**
* Continuously incrementing counter of detected hardware errors.
* Continuously incrementing counter of hardware errors.
*/
virtual uint64_t getNumErrors() const = 0;
virtual uint64_t getErrorCount() const = 0;
};
/**
+28 -6
View File
@@ -110,22 +110,44 @@ public:
bool topPriorityHigherOrEqual(const CanFrame& rhs_frame) const;
uint32_t getNumRejectedFrames() const { return rejected_frames_cnt_; }
uint32_t getRejectedFrameCount() const { return rejected_frames_cnt_; }
bool isEmpty() const { return queue_.isEmpty(); }
};
struct CanIfacePerfCounters
{
uint64_t frames_tx;
uint64_t frames_rx;
uint64_t errors;
CanIfacePerfCounters()
: frames_tx(0)
, frames_rx(0)
, errors(0)
{ }
};
class CanIOManager : Noncopyable
{
struct IfaceFrameCounters
{
uint64_t frames_tx;
uint64_t frames_rx;
IfaceFrameCounters()
: frames_tx(0)
, frames_rx(0)
{ }
};
ICanDriver& driver_;
ISystemClock& sysclock_;
CanTxQueue tx_queues_[MaxCanIfaces];
// Noncopyable
CanIOManager(CanIOManager&);
CanIOManager& operator=(CanIOManager&);
IfaceFrameCounters counters_[MaxCanIfaces];
int sendToIface(int iface_index, const CanFrame& frame, MonotonicTime tx_deadline, CanIOFlags flags);
int sendFromTxQueue(int iface_index);
@@ -147,7 +169,7 @@ public:
int getNumIfaces() const;
uint64_t getNumErrors(int iface_index) const;
CanIfacePerfCounters getIfacePerfCounters(int iface_index) const;
/**
* Returns: