Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2012
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. c boost::asio::buffer and structures
  2. #include <boost/asio.hpp>
  3.  
  4. struct testStruct{
  5. int x;
  6. int y;
  7. };
  8.  
  9. int main(){
  10. struct testStruct t;
  11. boost::asio::buffer b;
  12. b = boost::asio::buffer(t);
  13. return 0;
  14. }
  15.  
  16. #include <boost/asio.hpp>
  17.  
  18. #include <vector>
  19.  
  20. struct testStruct{
  21. int x;
  22. int y;
  23. };
  24.  
  25. int
  26. main()
  27. {
  28. struct testStruct t;
  29. t.x = 5;
  30. t.y = 7;
  31.  
  32. std::vector<boost::asio::const_buffer> buffers;
  33. buffers.push_back( boost::asio::buffer(&t.x, sizeof(t.x) ) );
  34. buffers.push_back( boost::asio::buffer(&t.y, sizeof(t.y) ) );
  35.  
  36. boost::asio::io_service io_service;
  37. boost::asio::ip::tcp::socket socket( io_service ); // note not connected!
  38. std::size_t length = boost::asio::write( socket, buffers );
  39.  
  40. return 0;
  41. }
  42.  
  43. class packet_writer
  44. {
  45. public:
  46. template <typename iter> void write(iter begin, iter end)
  47. {
  48. buffer_.insert(buffer_.end(), begin, end);
  49. }
  50.  
  51. template <typename T> void write(T data)
  52. {
  53. int8_t* begin = reinterpret_cast<int8_t*>(&data);
  54. write(begin, begin + sizeof(data));
  55. }
  56.  
  57. const std::vector<int8_t>& buffer() const
  58. {
  59. return buffer_;
  60. }
  61.  
  62. private:
  63. std::vector<int8_t> buffer_;
  64. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement