mnode_nng: add receive_message_retry()
This commit is contained in:
parent
92ec0eaf05
commit
7d414c8e56
1 changed files with 12 additions and 0 deletions
|
@ -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 */
|
||||||
|
|
Loading…
Reference in a new issue