Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- c boost::asio::buffer and structures
- #include <boost/asio.hpp>
- struct testStruct{
- int x;
- int y;
- };
- int main(){
- struct testStruct t;
- boost::asio::buffer b;
- b = boost::asio::buffer(t);
- return 0;
- }
- #include <boost/asio.hpp>
- #include <vector>
- struct testStruct{
- int x;
- int y;
- };
- int
- main()
- {
- struct testStruct t;
- t.x = 5;
- t.y = 7;
- std::vector<boost::asio::const_buffer> buffers;
- buffers.push_back( boost::asio::buffer(&t.x, sizeof(t.x) ) );
- buffers.push_back( boost::asio::buffer(&t.y, sizeof(t.y) ) );
- boost::asio::io_service io_service;
- boost::asio::ip::tcp::socket socket( io_service ); // note not connected!
- std::size_t length = boost::asio::write( socket, buffers );
- return 0;
- }
- class packet_writer
- {
- public:
- template <typename iter> void write(iter begin, iter end)
- {
- buffer_.insert(buffer_.end(), begin, end);
- }
- template <typename T> void write(T data)
- {
- int8_t* begin = reinterpret_cast<int8_t*>(&data);
- write(begin, begin + sizeof(data));
- }
- const std::vector<int8_t>& buffer() const
- {
- return buffer_;
- }
- private:
- std::vector<int8_t> buffer_;
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement