NetworkCompatibilityChecker: num_failed_nodes moved to NetworkCompatibilityCheckResult

This commit is contained in:
Pavel Kirienko
2014-06-15 22:27:16 +04:00
parent 163c3e0791
commit 0c1ecc0caa
3 changed files with 9 additions and 7 deletions
@@ -17,6 +17,12 @@ namespace uavcan
struct UAVCAN_EXPORT NetworkCompatibilityCheckResult
{
NodeID conflicting_node;
uint8_t num_failed_nodes;
NetworkCompatibilityCheckResult()
: num_failed_nodes(0)
{ }
bool isOk() const { return !conflicting_node.isValid(); }
};
@@ -40,7 +46,6 @@ class UAVCAN_EXPORT NetworkCompatibilityChecker : Noncopyable
NodeIDMask nid_mask_checked_;
NetworkCompatibilityCheckResult result_;
DataTypeKind checking_dtkind_;
uint8_t num_failed_nodes_;
bool last_cats_request_ok_;
INode& getNode() { return ns_sub_.getNode(); }
@@ -64,14 +69,11 @@ public:
: ns_sub_(node)
, cats_cln_(node)
, checking_dtkind_(DataTypeKindService)
, num_failed_nodes_(0)
, last_cats_request_ok_(false)
{ }
int execute();
uint8_t getNumFailedNodes() const { return num_failed_nodes_; }
const NetworkCompatibilityCheckResult& getResult() const { return result_; }
static int publishGlobalDiscoveryRequest(INode& node);
@@ -132,7 +132,6 @@ int NetworkCompatibilityChecker::checkOneNode(NodeID nid)
int NetworkCompatibilityChecker::checkNodes()
{
(void)nid_mask_checked_.reset();
num_failed_nodes_ = 0;
result_ = NetworkCompatibilityCheckResult();
while (result_.isOk())
@@ -142,7 +141,7 @@ int NetworkCompatibilityChecker::checkNodes()
{
UAVCAN_TRACE("NodeInitializer", "Checking nid=%i", int(nid.get()));
const int res = checkOneNode(nid);
num_failed_nodes_ += (res < 0) ? 1U : 0U;
result_.num_failed_nodes += (res < 0) ? 1U : 0U;
UAVCAN_TRACE("NodeInitializer", "Checked nid=%i result=%i", int(nid.get()), res);
}
else { break; }
@@ -100,7 +100,8 @@ TEST(NetworkCompatibilityChecker, RequestTimeout)
ASSERT_EQ(0, ni.execute());
// The one (and only) node has failed
ASSERT_EQ(1, ni.getNumFailedNodes());
ASSERT_EQ(1, ni.getResult().num_failed_nodes);
ASSERT_TRUE(ni.getResult().isOk());
}