Giriş
Scatter/Gather IO için kullanılır. Normalde arka arkaya iki tane asenkron işlem yapamayız.
Örnek
Şöyle yaparız.
Scatter/Gather IO için kullanılır. Normalde arka arkaya iki tane asenkron işlem yapamayız.
boost::asio::async_write(*serialPort, boost::asio::buffer(*something),handler);
boost::asio::async_write(*serialPort, boost::asio::buffer(*something2),handler);
İlk işlem bittikten sonra ikinci işlemi başlatabiliriz. Bundan kurtulmak için kullanılır.Örnek
Şöyle yaparız.
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#include <boost/asio/serial_port.hpp>
void handler(boost::system::error_code ec, size_t) {
std::cout << __PRETTY_FUNCTION__ << ": " << ec.message() << "\n";
}
int main() {
boost::asio::io_service svc;
auto serialPort = std::make_shared<boost::asio::serial_port>(svc);
auto something = std::make_shared<std::string>("hello world\n");
auto something2 = std::make_shared<std::string>("bye world\n");
std::vector<boost::asio::const_buffer> buffers {
boost::asio::buffer(*something),
boost::asio::buffer(*something2)
};
boost::asio::async_write(*serialPort, buffers, handler);
}
Hiç yorum yok:
Yorum Gönder