From 7d414c8e5639a62c6673e8536454f4ce652f60b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20L=C3=BCke?= Date: Sun, 29 Dec 2024 00:13:07 +0100 Subject: [PATCH] mnode_nng: add receive_message_retry() --- include/mesytec-mnode/mnode_nng.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 */