perf_counter.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
5 #ifndef UAVCAN_TRANSPORT_PERF_COUNTER_HPP_INCLUDED
6 #define UAVCAN_TRANSPORT_PERF_COUNTER_HPP_INCLUDED
7 
8 #include <uavcan/std.hpp>
11 
12 namespace uavcan
13 {
14 
15 #if UAVCAN_TINY
16 
17 class UAVCAN_EXPORT TransferPerfCounter : Noncopyable
18 {
19 public:
20  void addTxTransfer() { }
21  void addRxTransfer() { }
22  void addError() { }
23  void addErrors(unsigned) { }
24  uint64_t getTxTransferCount() const { return 0; }
25  uint64_t getRxTransferCount() const { return 0; }
26  uint64_t getErrorCount() const { return 0; }
27 };
28 
29 #else
30 
37 {
41 
42 public:
44  : transfers_tx_(0)
45  , transfers_rx_(0)
46  , errors_(0)
47  { }
48 
49  void addTxTransfer() { transfers_tx_++; }
50  void addRxTransfer() { transfers_rx_++; }
51 
52  void addError() { errors_++; }
53 
54  void addErrors(unsigned errors)
55  {
56  errors_ += errors;
57  }
58 
63  const uint64_t& getTxTransferCount() const { return transfers_tx_; }
64  const uint64_t& getRxTransferCount() const { return transfers_rx_; }
65  const uint64_t& getErrorCount() const { return errors_; }
66 };
67 
68 #endif
69 
70 }
71 
72 #endif // UAVCAN_TRANSPORT_PERF_COUNTER_HPP_INCLUDED
uavcan::Noncopyable
Definition: templates.hpp:46
uavcan::uint64_t
std::uint64_t uint64_t
Definition: std.hpp:27
templates.hpp
uavcan::TransferPerfCounter::errors_
uint64_t errors_
Definition: perf_counter.hpp:40
uavcan::TransferPerfCounter::TransferPerfCounter
TransferPerfCounter()
Definition: perf_counter.hpp:43
uavcan::TransferPerfCounter::getErrorCount
const uint64_t & getErrorCount() const
Definition: perf_counter.hpp:65
uavcan::TransferPerfCounter::addRxTransfer
void addRxTransfer()
Definition: perf_counter.hpp:50
std.hpp
uavcan::TransferPerfCounter::transfers_rx_
uint64_t transfers_rx_
Definition: perf_counter.hpp:39
uavcan::TransferPerfCounter::getRxTransferCount
const uint64_t & getRxTransferCount() const
Definition: perf_counter.hpp:64
uavcan::TransferPerfCounter
Definition: perf_counter.hpp:36
uavcan::TransferPerfCounter::transfers_tx_
uint64_t transfers_tx_
Definition: perf_counter.hpp:38
uavcan::TransferPerfCounter::addTxTransfer
void addTxTransfer()
Definition: perf_counter.hpp:49
UAVCAN_EXPORT
#define UAVCAN_EXPORT
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:108
uavcan::TransferPerfCounter::addErrors
void addErrors(unsigned errors)
Definition: perf_counter.hpp:54
build_config.hpp
uavcan::TransferPerfCounter::addError
void addError()
Definition: perf_counter.hpp:52
uavcan::TransferPerfCounter::getTxTransferCount
const uint64_t & getTxTransferCount() const
Definition: perf_counter.hpp:63
uavcan
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:204


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:02