$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Scott Woods (scottw_at_[hidden])
Date: 2004-12-29 14:37:36
----- Original Message -----
From: "Caleb Epstein" <caleb.epstein_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Thursday, December 30, 2004 4:10 AM
Subject: Re: [boost] Re: Serialization and async messaging
> > I think Scott is saying that operator>> is insufficient because it can
> > not do a partial read of what is there... it wants to snarf all 4K.
>
> I think at least one person here is mixing pickles and milk, as my old
> Latin teacher used to say.
>
> Firstly, the serialization library doesn't use operator>> or
> operator<< at all. If you're using these operators on some sort of
> socket iostream and you don't want blocking to occur, thats your first
> mistake.
>
> When reading/writing data with sockets, its up to you to use an
> appropriate protocol that can detect "message" boundaries so you know
> when you have a complete block of data to work with. See for example
> the BEEP protocol (http://beepcore.org/) for a nice specification and
> implementation.
>
> Don't tightly couple this communications layer to the application
> layer. The two layers should just pass "complete" blocks of data
> (e.g. serialized objects) between each other.
At the core of the comments I have read, I believe that a common
problem has been identified. The separation of application-level
communications from the send+recv of blocks over a socket is
the abstract, while "operator>>... wants to snarf all 4K" is the
dirty guts of it?
Thanks for the reference. First review has me resigned to another
round of research.
Cheers.