mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-07-14 06:00:35 +08:00
Partially refactored ServiceClient, tests are failing, the code is totally broken
This commit is contained in:
+13
-12
@@ -327,9 +327,9 @@ class RaftCore : private TimerBase
|
||||
|
||||
for (uint8_t i = 0; i < NumRequestVoteClients; i++)
|
||||
{
|
||||
request_vote_clients_[i]->cancel();
|
||||
request_vote_clients_[i]->cancelAll(); // TODO FIXME Concurrent calls!!
|
||||
}
|
||||
append_entries_client_.cancel();
|
||||
append_entries_client_.cancelAll();
|
||||
|
||||
/*
|
||||
* Calling the switch handler
|
||||
@@ -550,22 +550,23 @@ class RaftCore : private TimerBase
|
||||
return;
|
||||
}
|
||||
|
||||
if (result.response.term > persistent_state_.getCurrentTerm())
|
||||
if (result.getResponse().term > persistent_state_.getCurrentTerm())
|
||||
{
|
||||
tryIncrementCurrentTermFromResponse(result.response.term);
|
||||
tryIncrementCurrentTermFromResponse(result.getResponse().term);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (result.response.success)
|
||||
if (result.getResponse().success)
|
||||
{
|
||||
cluster_.incrementServerNextIndexBy(result.server_node_id, pending_append_entries_fields_.num_entries);
|
||||
cluster_.setServerMatchIndex(result.server_node_id,
|
||||
cluster_.incrementServerNextIndexBy(result.getCallID().server_node_id,
|
||||
pending_append_entries_fields_.num_entries);
|
||||
cluster_.setServerMatchIndex(result.getCallID().server_node_id,
|
||||
Log::Index(pending_append_entries_fields_.prev_log_index +
|
||||
pending_append_entries_fields_.num_entries));
|
||||
}
|
||||
else
|
||||
{
|
||||
cluster_.decrementServerNextIndex(result.server_node_id);
|
||||
cluster_.decrementServerNextIndex(result.getCallID().server_node_id);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -654,15 +655,15 @@ class RaftCore : private TimerBase
|
||||
return;
|
||||
}
|
||||
|
||||
trace(TraceRaftVoteRequestSucceeded, result.server_node_id.get());
|
||||
trace(TraceRaftVoteRequestSucceeded, result.getCallID().server_node_id.get());
|
||||
|
||||
if (result.response.term > persistent_state_.getCurrentTerm())
|
||||
if (result.getResponse().term > persistent_state_.getCurrentTerm())
|
||||
{
|
||||
tryIncrementCurrentTermFromResponse(result.response.term);
|
||||
tryIncrementCurrentTermFromResponse(result.getResponse().term);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (result.response.vote_granted)
|
||||
if (result.getResponse().vote_granted)
|
||||
{
|
||||
num_votes_received_in_this_campaign_++;
|
||||
}
|
||||
|
||||
@@ -235,14 +235,14 @@ class NodeDiscoverer : TimerBase
|
||||
if (result.isSuccessful())
|
||||
{
|
||||
UAVCAN_TRACE("dynamic_node_id_server::NodeDiscoverer", "GetNodeInfo response from %d",
|
||||
int(result.server_node_id.get()));
|
||||
finalizeNodeDiscovery(&result.response.hardware_version.unique_id, result.server_node_id);
|
||||
int(result.getCallID().server_node_id.get()));
|
||||
finalizeNodeDiscovery(&result.getResponse().hardware_version.unique_id, result.getCallID().server_node_id);
|
||||
}
|
||||
else
|
||||
{
|
||||
trace(TraceDiscoveryGetNodeInfoFailure, result.server_node_id.get());
|
||||
trace(TraceDiscoveryGetNodeInfoFailure, result.getCallID().server_node_id.get());
|
||||
|
||||
NodeData* const data = node_map_.access(result.server_node_id);
|
||||
NodeData* const data = node_map_.access(result.getCallID().server_node_id);
|
||||
if (data == NULL)
|
||||
{
|
||||
return; // Probably it is a known node now
|
||||
@@ -250,11 +250,11 @@ class NodeDiscoverer : TimerBase
|
||||
|
||||
UAVCAN_TRACE("dynamic_node_id_server::NodeDiscoverer",
|
||||
"GetNodeInfo request to %d has timed out, %d attempts",
|
||||
int(result.server_node_id.get()), int(data->num_get_node_info_attempts));
|
||||
int(result.getCallID().server_node_id.get()), int(data->num_get_node_info_attempts));
|
||||
data->num_get_node_info_attempts++;
|
||||
if (data->num_get_node_info_attempts >= MaxAttemptsToGetNodeInfo)
|
||||
{
|
||||
finalizeNodeDiscovery(NULL, result.server_node_id);
|
||||
finalizeNodeDiscovery(NULL, result.getCallID().server_node_id);
|
||||
// Warning: data pointer is invalidated now
|
||||
}
|
||||
}
|
||||
@@ -262,7 +262,7 @@ class NodeDiscoverer : TimerBase
|
||||
|
||||
void handleTimerEvent(const TimerEvent&)
|
||||
{
|
||||
if (get_node_info_client_.isPending())
|
||||
if (get_node_info_client_.hasPendingCalls())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user