To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/156364702914.5369.4249645648625880523%40localhost.localdomain.
> an email to [1]capn...@googlegroups.com.
> To view this discussion on the web visit
> [2]https://groups.google.com/d/msgid/capnproto/92d0c205-d5cc-4ecd-b1ff-
> f514a0aa49c7%40googlegroups.com.
>
> Verweise
>
> 1. mailto:capn...@googlegroups.com
> 2. https://groups.google.com/d/msgid/capnproto/92d0c205-d5cc-4ecd-b1ff-f514a0aa49c7%40googlegroups.com?utm_medium=email&utm_source=footer
--
You received this message because you are subscribed to the Google Groups "Cap'n Proto" group.
To unsubscribe from this group and stop receiving emails from it, send an email to capn...@googlegroups.com.
Thanks to both of you.I see that the writeMessage() in serialize.h creates a segment table and copies over the individual segments. So I presume, in order to send a multi-segment without incurring a copy, the applicationwould have to forego using the interfaces in serialize.h and frame the segments with a segment table on its own similar to what writeMessage() does.
Is there a way for the application to send all segments as one individual message over, say a socket, or would the application need to send multiple messages andreconstruct at the receiving end? I presume that as Kenton's response indicates for a read, the write cannot be truly zero copy if the message needsto be ultimately sent over a socket/queue. The copy that is saved by not using writeMessage would be coalescing of multiple segments into one long segment. Is that an accurate understanding?
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/f719008d-ec2f-4ee1-8bd0-d223434114d7%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/f719008d-ec2f-4ee1-8bd0-d223434114d7%40googlegroups.com.
To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/5ce13b79-6a1c-4e6d-b8ab-ecee7e664a79%40googlegroups.com.
I guess SysV / POSIX message queues do not have any gather-write interface (like writev()), therefore it is probably impossible to send a multi-segment message over a message queue without performing an upfront copy to concatenate the segments.
I suppose you could send each segment as a separate message, but that doesn't work if you have multiple concurrent senders, which is one of the main reasons to use message queues in the first place.In general, the best way to transmit a message probably depends on the transmission API. In some cases you will want to do your own framing, yes.
To view this discussion on the web visit https://groups.google.com/d/msgid/capnproto/5ce13b79-6a1c-4e6d-b8ab-ecee7e664a79%40googlegroups.com.