Merge pull request #90 from 0mp/master

Create a binding for zmq_msg_gets.
This commit is contained in:
Luca Boccassi 2016-11-15 23:00:14 +01:00 committed by GitHub
commit 5fcd5cf29d

34
zmq.hpp
View File

@ -71,8 +71,8 @@
#define ZMQ_DELETED_FUNCTION #define ZMQ_DELETED_FUNCTION
#endif #endif
#elif defined(_MSC_VER) && (_MSC_VER >= 1900) #elif defined(_MSC_VER) && (_MSC_VER >= 1900)
#define ZMQ_HAS_RVALUE_REFS #define ZMQ_HAS_RVALUE_REFS
#define ZMQ_DELETED_FUNCTION = delete #define ZMQ_DELETED_FUNCTION = delete
#elif defined(_MSC_VER) && (_MSC_VER >= 1600) #elif defined(_MSC_VER) && (_MSC_VER >= 1600)
#define ZMQ_HAS_RVALUE_REFS #define ZMQ_HAS_RVALUE_REFS
#define ZMQ_DELETED_FUNCTION #define ZMQ_DELETED_FUNCTION
@ -124,10 +124,10 @@ namespace zmq
return zmq_strerror (errnum); return zmq_strerror (errnum);
} }
#else #else
virtual const char *what() const throw () virtual const char *what() const throw ()
{ {
return zmq_strerror(errnum); return zmq_strerror(errnum);
} }
#endif #endif
int num () const int num () const
{ {
@ -177,7 +177,7 @@ namespace zmq
if (rc != 0) if (rc != 0)
throw error_t (); throw error_t ();
} }
#ifdef ZMQ_HAS_PROXY_STEERABLE #ifdef ZMQ_HAS_PROXY_STEERABLE
inline void proxy_steerable (void *frontend, void *backend, void *capture, void *control) inline void proxy_steerable (void *frontend, void *backend, void *capture, void *control)
{ {
@ -186,7 +186,7 @@ namespace zmq
throw error_t (); throw error_t ();
} }
#endif #endif
inline void version (int *major_, int *minor_, int *patch_) inline void version (int *major_, int *minor_, int *patch_)
{ {
zmq_version (major_, minor_, patch_); zmq_version (major_, minor_, patch_);
@ -372,6 +372,14 @@ namespace zmq
return a == b; return a == b;
} }
inline const char* gets(const char *property_) const
{
const char* value = zmq_msg_gets (&msg, property);
if (value == NULL)
throw error_t ();
return value;
}
private: private:
// The underlying message // The underlying message
zmq_msg_t msg; zmq_msg_t msg;
@ -611,7 +619,7 @@ namespace zmq
{ {
return(ptr != NULL); return(ptr != NULL);
} }
inline size_t send (const void *buf_, size_t len_, int flags_ = 0) inline size_t send (const void *buf_, size_t len_, int flags_ = 0)
{ {
int nbytes = zmq_send (ptr, buf_, len_, flags_); int nbytes = zmq_send (ptr, buf_, len_, flags_);
@ -664,7 +672,7 @@ namespace zmq
return false; return false;
throw error_t (); throw error_t ();
} }
private: private:
inline void init(context_t& context_, int type_) inline void init(context_t& context_, int type_)
{ {
@ -704,9 +712,9 @@ namespace zmq
rc = zmq_connect (s, addr_); rc = zmq_connect (s, addr_);
assert (rc == 0); assert (rc == 0);
on_monitor_started(); on_monitor_started();
while (true) { while (true) {
zmq_msg_t eventMsg; zmq_msg_t eventMsg;
zmq_msg_init (&eventMsg); zmq_msg_init (&eventMsg);
@ -723,7 +731,7 @@ namespace zmq
#else #else
zmq_event_t* event = static_cast<zmq_event_t*>(zmq_msg_data(&eventMsg)); zmq_event_t* event = static_cast<zmq_event_t*>(zmq_msg_data(&eventMsg));
#endif #endif
#ifdef ZMQ_NEW_MONITOR_EVENT_LAYOUT #ifdef ZMQ_NEW_MONITOR_EVENT_LAYOUT
zmq_msg_t addrMsg; zmq_msg_t addrMsg;
zmq_msg_init (&addrMsg); zmq_msg_init (&addrMsg);