Friday 15 July 2011

c++ - How to write to a boost::asio::mutable_buffer? -


I have some code that gives me an indicator in the buffer, and the buffer size that I want to fill with data I need to present this buffer with the boost :: asio :: mutable_buffer example, but how do I use this buffer (for example, write it string, ...) and buffer Promote boundaries?

Here is some pseudo code:

  size_t some_callback (zero * ptr, size_t) {// This function is called back by third party by our_handler (boost :: Asio :: mutable_buffer (ptr, size)); } Size_t our_handler (const boost :: asio :: mutable_buffer and buffer) {const std :: string test ("test"); // How do I write this string in my buffer? Return test.size (); }    

boost :: asio :: buffer_cast & lt; & Gt; What should you do to get access to the pointer used by () buffer? To use Boost :: asio :: buffer_size () you should use to reach the size you use.

Like

  const std:: string test ("test"); Const size_t len ​​= std :: min (boost :: asio :: buffer_size (mybuf), test.length ()); Memcpy (boost :: asio :: buffer_cast & lt; void * & gt; (mybuf), test.c_str (), lane); Const std :: string test2 ("test"); Boost :: asio :: mutable_buffer offset = mybuf + len; Const size_t len2 = std :: min (boost :: asio :: buffer_size (offset), test2.length ()); Memcpy (boost :: asio :: buffer_cast & lt; void * & gt; (offset), test.c_str (), len2); Boost :: asio :: mutable_buffer offset2 = offset + len2;   

See also:



No comments:

Post a Comment