Boost logo

Boost Users :

Subject: Re: [Boost-users] ASIO async_read_until...
From: Zachary Turner (divisortheory_at_[hidden])
Date: 2009-07-23 16:05:45


On Thu, Jul 23, 2009 at 1:27 PM, Etienne Philip
Pretorius<icewolfhunter_at_[hidden]> wrote:
> Hello list,
>
> I have a set of inherited classes as follows:
>
> client    [parent of]  stream  [parent of]
> parser   [parent of]
> grammar
>
> When I perform the following call:
>
> boost::asio::async_read_until(
>   socket_,
>       streambuf_,
>       stream::parse(),
>       boost::bind(
>           &client::handle_read,
>               this,
>               boost::asio::placeholders::error,
>               boost::asio::placeholders::bytes_transferred
>       )
> );
>
> The xml::parser::operator() call for the match condition is a copy of the
> classes:
>
> parser [parent of]
> grammar
>
> I need to know if someone could suggest a client way for me to use (shared)
> pointers to the classes so that the xml::parser::operator() can keep its
> state changes over successive calls for async_read_until.

I should throw in a disclaimer that I have no experience at all with
the xml parsing classes you're using so this may not apply.

Can you store a single instance of parser inside client and then call
async_read_until with boost::ref(parser_) instead of stream::parse()?


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