throw runtime_error("Could not set up nanomsg socket");
}
if (server) {
- if (nn_bind(_socket, NANOMSG_URL) < 0) {
+ if ((_endpoint = nn_bind(_socket, NANOMSG_URL)) < 0) {
throw runtime_error(String::compose("Could not bind nanomsg socket (%1)", errno));
}
} else {
- if (nn_connect(_socket, NANOMSG_URL) < 0) {
+ if ((_endpoint = nn_connect(_socket, NANOMSG_URL)) < 0) {
throw runtime_error(String::compose("Could not connect nanomsg socket (%1)", errno));
}
}
}
+Nanomsg::~Nanomsg ()
+{
+ nn_shutdown (_socket, _endpoint);
+ nn_close (_socket);
+}
+
+
bool
Nanomsg::send (string s, int timeout)
{
{
public:
explicit Nanomsg (bool server);
+ ~Nanomsg ();
Nanomsg (Nanomsg const&) = delete;
Nanomsg& operator= (Nanomsg const&) = delete;
void recv_and_parse (int flags);
int _socket;
+ int _endpoint;
std::list<std::string> _pending;
std::string _current;
};