Just a quick look but i have a quick question,

 

Write method require as second param a buffer; te axample you suggested pass shared_const_buffer which does not implements any  interface.

I suppose the trick should be in these lines

 

  typedef boost::asio::const_buffer value_type;

  typedef const boost::asio::const_buffer* const_iterator;

 

but I don’t know why.

 Can you explain me the trick ?

 

Thanks

Matteo

 

From: boost-users-bounces@lists.boost.org [mailto:boost-users-bounces@lists.boost.org] On Behalf Of ecyrbe
Sent: sabato 10 luglio 2010 16:48
To: boost-users@lists.boost.org
Subject: Re: [Boost-users] asio::async_write, how to delete data after

 

see the reference_counted example in the boost asio documentation. It's a good start to allow dynamic buffer allocation and auto deletion when your message is delivered...

2010/7/10 Matteo Lanzi <matteo.lanzi@kaseya.com>

Hi, I modified a little the echo server example and to build up a simple tcp server; basically what I do is:

 

-          Start the server in a thread

-          When a session is created I start  async read

-          If my session receive a signal I  write a data with async write function

-          Handle data written then start again async read ( otherwise the connection should be closed )

 

I have some specific functions which prepare packets and then invoke the write method

 

I would like to avoid static allocation of my buffer instead of dynamic one; for doing that I supposed to use shared_array<T>

I can’t do that because the boost::asio::buffer, required by the write method, doesn’t seem to accept smart pointer.

 

So my questions are:

-          Is there a common pattern to follow for preparing data and delete them after the delivery ?

-          Is it possible to use smart pointers with async_write ?

-          Is the async_write executed in another thread ? should I have concurrency problems if I would use an unique output buffer and clear it on the handle_write callback ?

 

Thanks

Matteo

 

 


_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
http://lists.boost.org/mailman/listinfo.cgi/boost-users