Re: [asio-users] asio streambuf
Brought to you by:
chris_kohlhoff
From: Christopher K. <ch...@ko...> - 2007-06-25 13:59:49
|
On Sat, 23 Jun 2007 20:35:49 +0300, "Igor Solovyov" <igo...@gm...> said: > Whether is it possible after reading by >> to return all read data back > into buffer (some kind of rollback functionality)? No. It behaves like other streambuf classes in the standard, in that once the data is consumed it is gone. > Also, my wishes relative to async_read_until. > I found this method very useful with regexp, but it would be great if > such approach is more generalized. > What about passing some kind of functors which should return true if some > necessary data portion (i.e. network message) is got completely? > I try to illustrate my thought by following example: > > async_read_until( myStream, myStreambuf, myFunctor, myReadHandler); > > where myFunctor has type > struct MyFuctor > { > template< typename TIterator > > bool operator()( TIterator begin, TIterator end ) > { > if ( end - begin < 33 ) > return false; > // ... parsing the protocol message ... > return true; > } > }; Yes, I plan to do add something like this in the future. However, I am not happy with a function object interface that requires the function to be a template. I am yet to come up with an interface that I like. Cheers, Chris |