Commit cc813689 authored by Martin Sustrik's avatar Martin Sustrik

documentation in zmq.h improved

parent e6ca5da1
This diff is collapsed.
...@@ -32,13 +32,6 @@ namespace zmq ...@@ -32,13 +32,6 @@ namespace zmq
typedef zmq_free_fn free_fn; typedef zmq_free_fn free_fn;
enum message_type_t
{
message_data = 1 << 0,
message_gap = 1 << ZMQ_GAP,
message_delimiter = 1 << ZMQ_DELIMITER
};
// The class masquerades POSIX-style errno error as a C++ exception. // The class masquerades POSIX-style errno error as a C++ exception.
class error_t : public std::exception class error_t : public std::exception
{ {
...@@ -148,12 +141,6 @@ namespace zmq ...@@ -148,12 +141,6 @@ namespace zmq
throw error_t (); throw error_t ();
} }
// Returns message type.
inline message_type_t type ()
{
return (message_type_t) (1 << zmq_msg_type (this));
}
// Returns pointer to message's data buffer. // Returns pointer to message's data buffer.
inline void *data () inline void *data ()
{ {
......
...@@ -84,8 +84,7 @@ int zmq_msg_close (zmq_msg_t *msg_) ...@@ -84,8 +84,7 @@ int zmq_msg_close (zmq_msg_t *msg_)
{ {
// For VSMs and delimiters there are no resources to free. // For VSMs and delimiters there are no resources to free.
if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER || if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER ||
msg_->content == (zmq::msg_content_t*) ZMQ_VSM || msg_->content == (zmq::msg_content_t*) ZMQ_VSM)
msg_->content == (zmq::msg_content_t*) ZMQ_GAP)
return 0; return 0;
// If the content is not shared, or if it is shared and the reference. // If the content is not shared, or if it is shared and the reference.
...@@ -118,10 +117,8 @@ int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_) ...@@ -118,10 +117,8 @@ int zmq_msg_copy (zmq_msg_t *dest_, zmq_msg_t *src_)
zmq_msg_close (dest_); zmq_msg_close (dest_);
// VSMs and delimiters require no special handling. // VSMs and delimiters require no special handling.
if (src_->content != if (src_->content != (zmq::msg_content_t*) ZMQ_DELIMITER &&
(zmq::msg_content_t*) ZMQ_DELIMITER && src_->content != (zmq::msg_content_t*) ZMQ_VSM) {
src_->content != (zmq::msg_content_t*) ZMQ_VSM &&
src_->content != (zmq::msg_content_t*) ZMQ_GAP) {
// One reference is added to shared messages. Non-shared messages // One reference is added to shared messages. Non-shared messages
// are turned into shared messages and reference count is set to 2. // are turned into shared messages and reference count is set to 2.
...@@ -142,9 +139,7 @@ void *zmq_msg_data (zmq_msg_t *msg_) ...@@ -142,9 +139,7 @@ void *zmq_msg_data (zmq_msg_t *msg_)
{ {
if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM) if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM)
return msg_->vsm_data; return msg_->vsm_data;
if (msg_->content == if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER)
(zmq::msg_content_t*) ZMQ_DELIMITER ||
msg_->content == (zmq::msg_content_t*) ZMQ_GAP)
return NULL; return NULL;
return ((zmq::msg_content_t*) msg_->content)->data; return ((zmq::msg_content_t*) msg_->content)->data;
...@@ -154,25 +149,12 @@ size_t zmq_msg_size (zmq_msg_t *msg_) ...@@ -154,25 +149,12 @@ size_t zmq_msg_size (zmq_msg_t *msg_)
{ {
if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM) if (msg_->content == (zmq::msg_content_t*) ZMQ_VSM)
return msg_->vsm_size; return msg_->vsm_size;
if (msg_->content == if (msg_->content == (zmq::msg_content_t*) ZMQ_DELIMITER)
(zmq::msg_content_t*) ZMQ_DELIMITER ||
msg_->content == (zmq::msg_content_t*) ZMQ_GAP)
return 0; return 0;
return ((zmq::msg_content_t*) msg_->content)->size; return ((zmq::msg_content_t*) msg_->content)->size;
} }
int zmq_msg_type (zmq_msg_t *msg_)
{
// If it's a genuine message, return 0.
if (msg_->content >= (zmq::msg_content_t*) ZMQ_VSM)
return 0;
// Trick the compiler to believe that content is an integer.
unsigned char *offset = 0;
return (((const unsigned char*) msg_->content) - offset);
}
void *zmq_init (int app_threads_, int io_threads_, int flags_) void *zmq_init (int app_threads_, int io_threads_, int flags_)
{ {
// There should be at least a single thread managed by the dispatcher. // There should be at least a single thread managed by the dispatcher.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment