$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [boost::endian] Request for comments/interest
From: Jonathan Franklin (franklin.jonathan_at_[hidden])
Date: 2010-06-01 17:41:19
Sorry for my late replies. I have been offline for a bit.
On Fri, May 28, 2010 at 2:27 PM, Terry Golubiewski <tjgolubi_at_[hidden]> wrote:
> Since IP packets cannot be 10GB, I submit that you're going to have to break
> your 10GB array down into messages. Then you're going to copy portions of
> the 10GB array into those messages and send them. In the type-base
> approach the message may indeed contain an array.
As Tomas already pointed out, explicitly breaking a blob of data into
chunks for network transfer is superfluous in streaming protocols such
as TCP. The protocol will take care of this more efficiently at the
network and/or transport layer than I can at the application layer.
Further, if I break my data blob into k segments and insert my own
message header as a preamble to each segment, then I unnecessarily add
k*sizeof(my_header) to the stream.
> In the message-based interfaces that I am used to, one always must copy some
> data structures into a message before you send it.
As Tomas also pointed out, this is not a marshaling library. However,
a marshaling library could make good use of an "endian" library such
as this.
In addition to my network needs, I also have at least two image file
formats that have the option of storing the arbitrarily sized data on
disk in big- or little-endian format. A library that allows me to
slurp up the image data into memory and swap in place if needed is
terribly useful to me.
Jon