[zeromq-dev] Feature request: "transmit size" on zmq_msg_t packets
Martin Sustrik
sustrik at 250bpm.com
Thu Jun 24 09:19:20 CEST 2010
Matt,
> I'm reading variable length records directly from a MYSQL database,
> with a defined "max field length" into a dynamically allocated
> zmq_msg_t buffer, whose size must be the max field length.
>
> However, I need to send just the characters I retrieved from the
> database, not the full buffer, otherwise I must figure out how to send
> the data field size to the distant end, or at least I must:
>
> 1) null the unused portion of the buffer; or
> 2) copy to a smaller zmq_msg_t.
>
> Both of these require fill or copy operations :-(
You can do it in a following way:
void my_free (void *data, void *hint) {free (data);}
...
char *buf = malloc (MAX_BUFFER_SIZE);
size_t bytes_used = fill_in_the_buffer (buf);
zmq_msg_t msg;
zmq_msg_init_data (msg, buf, bytes_used, my_free, NULL);
zmq_msg_send (s, msg);
Martin
More information about the zeromq-dev
mailing list