fix: replaced has_conclusion with check for full

This commit is contained in:
Sara Gerretsen 2025-11-05 16:47:34 +01:00
parent 1d2a410867
commit ac1dbd6222
3 changed files with 15 additions and 4 deletions

View file

@ -37,9 +37,9 @@ void ClientNode::process() {
reveal_backlog(); reveal_backlog();
} }
} }
bool const new_has_conclusion{ ydi::client::receive::has_conclusion() }; FixedVector<NetworkData::ClueID, 3> &conclusion{ ydi::client::receive::conclusion() };
if (new_has_conclusion != this->conclusion.is_full()) { if (conclusion.is_full() != this->conclusion.is_full()) {
this->conclusion = ydi::client::receive::conclusion(); this->conclusion = conclusion;
emit_signal(sig_conclusion_received, this->conclusion[0], this->conclusion[1], this->conclusion[2]); emit_signal(sig_conclusion_received, this->conclusion[0], this->conclusion[1], this->conclusion[2]);
} }
} }

View file

@ -146,6 +146,18 @@ NetworkData::ConnectionStatus status() {
} }
} }
namespace receive {
FixedVector<NetworkData::ClueID, 3> &conclusion() {
static FixedVector<NetworkData::ClueID, 3> thread_safe_conclusion{};
if (connection) {
thread_safe_conclusion.clear();
} else {
std::scoped_lock lock{ connection->mtx };
thread_safe_conclusion = connection->conclusion;
}
return thread_safe_conclusion;
}
} //namespace receive
namespace send { namespace send {
void reveal_clue(NetworkData::ClueID id) { void reveal_clue(NetworkData::ClueID id) {
if (connection) { if (connection) {

View file

@ -10,7 +10,6 @@ void disconnect();
NetworkData::ConnectionStatus status(); NetworkData::ConnectionStatus status();
namespace receive { namespace receive {
FixedVector<NetworkData::ClueID, 3> &conclusion(); FixedVector<NetworkData::ClueID, 3> &conclusion();
bool has_conclusion();
} //namespace receive } //namespace receive
namespace send { namespace send {
void reveal_clue(NetworkData::ClueID id); void reveal_clue(NetworkData::ClueID id);