|
Boost : |
Subject: Re: [boost] Interest in a simple buffer abstraction?
From: Boris Kolpackov (boris_at_[hidden])
Date: 2011-01-28 10:22:35
Hi Robert,
"Stewart, Robert" <Robert.Stewart_at_[hidden]> writes:
> No you wouldn't. As I showed in the portion of my reply that you cut,
> if your packet owns its data, then it would have a container of that
> data.
Yes, which would involve having a data member of the std::vector<char>
type. Let me put it this way: if I want *both* to own the data and
have a convenient interface for it, I would have to have two members,
as I showed in my original code. Is that not so?
> When you want performance, you don't want to copy data. Your model
> requires that the data be copied.
If you want unsafe sharing semantics, you can always pass/store
references to the buffer instead of making a copy. For example:
class packet
{
packet (const buffer& p): payload_ (p) {}
buffer& payload_;
};
You also have the option of safe sharing with something like shared_ptr.
Boris
-- Boris Kolpackov, Code Synthesis http://codesynthesis.com/~boris/blog Compiler-based ORM system for C++ http://codesynthesis.com/products/odb Open-source XML data binding for C++ http://codesynthesis.com/products/xsd XML data binding for embedded systems http://codesynthesis.com/products/xsde
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk