Boost Users :
Subject: Re: [Boost-users] [ASIO / Serialization] How to avoid the copy?
From: Robert Ramey (ramey_at_[hidden])
Date: 2009-05-25 13:29:31
you would likely have to invent a "asio_streambuf" if such a thing doesn't already
exist. This would retrieve data when necessary into a smaller buffer which
could then be used by any of the streams. (This would be similar to string_streambuf).
This would work fine for serialization and be useful in general. I'd be suprised
if asio doesn't already have it.
"Dan Eaton" <daniel.eaton_at_[hidden]> wrote in message news:AD3E5D661CED404A842D89A45C87D5661654313D96_at_axe-post.Acceleware.local...
Referring to the boost::asio "Serialization" example, and specifically to the file connection.hpp which handles serialization over sockets:
When new data is to be received, first the message header is read, which contains the number of bytes for the body. Storage must be allocated to receive the body, and is then passed into ::read as boost::asio::buffer. For the purpose of using Serialize, it must then be converted to an std::istream, (in the example above, istringstream). As shown in the example, this requires an extra copy to be held in memory for the std::string.
What's the best route to avoid this copy?
Acceleware Corp. (TSX-V:AXE) www.acceleware.com
Phone: +1.403.249.9099 Ext.295
Acceleware gets your products to market faster, better and stronger!
This e-mail may contain information that is privileged and confidential and subject to legal restrictions and penalties regarding its unauthorized disclosure or use. You are prohibited from copying, distributing or otherwise using this information if you are not the intended recipient. If you have received this e-mail in error, please notify us immediately by return e-mail and delete this e-mail and its attachments from your system. Thank you.
© 2008 Acceleware, Inc. All Rights Reserved
Boost-users mailing list
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net