mnode_nng: add receive_message_retry()

This commit is contained in:
Florian Lüke 2024-12-29 00:13:07 +01:00
parent 92ec0eaf05
commit 7d414c8e56

View file

@ -334,6 +334,18 @@ inline unique_msg clone_message(const nng_msg *msg)
inline unique_msg clone_message(const unique_msg &msg) { return clone_message(msg.get()); } inline unique_msg clone_message(const unique_msg &msg) { return clone_message(msg.get()); }
inline std::pair<unique_msg, int> receive_message_retry(nng_socket sock, int flags,
retry_predicate rp)
{
while (true)
{
if (auto ret = receive_message(sock, flags); !ret.second || !rp(ret.second))
{
return ret;
}
}
}
} // namespace mesytec::mnode::nng } // namespace mesytec::mnode::nng
#endif /* B18E3651_CA9A_43BC_AA25_810EA16533CD */ #endif /* B18E3651_CA9A_43BC_AA25_810EA16533CD */