diff --git a/include/mesytec-mnode/mnode_nng.h b/include/mesytec-mnode/mnode_nng.h index 68b6349..477b973 100644 --- a/include/mesytec-mnode/mnode_nng.h +++ b/include/mesytec-mnode/mnode_nng.h @@ -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 std::pair 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 #endif /* B18E3651_CA9A_43BC_AA25_810EA16533CD */