23#include <nng/protocol/reqrep0/rep.h>
27 m_socketUrl( aSocketUrl ),
60 std::lock_guard<std::mutex> lock(
m_mutex );
71 std::lock_guard<std::mutex> lock(
m_mutex );
80 nng_listener listener;
83 retCode = nng_rep0_open( &socket );
88 retCode = nng_listener_create( &listener, socket,
m_socketUrl.c_str() );
93 nng_socket_set_ms( socket, NNG_OPT_RECVTIMEO, 500 );
95 nng_listener_start( listener, 0 );
103 retCode = nng_recv( socket, &buf, &sz, NNG_FLAG_ALLOC );
105 if( retCode == NNG_ETIMEDOUT )
114 std::string message( buf, sz );
119 std::unique_lock<std::mutex> lock(
m_mutex );
122 retCode = nng_send( socket,
const_cast<std::string::value_type*
>(
m_pendingReply.c_str() ),
std::string m_pendingReply
KINNG_REQUEST_SERVER(const std::string &aSocketUrl)
void Reply(const std::string &aReply)
std::function< void(std::string *)> m_callback
std::atomic< bool > m_shutdown
std::condition_variable m_replyReady