본문 바로가기

Asio16

boost/asio deprecated 1.69.0 boost::asio가 c++ 표준에 들어가게 되서 그런지 변경 사항들이 많다.호환성을 위해 더이상 더이상 사용되지 않는 코드들이 여전히 남아있지만,전처리기에 BOOST_ASIO_NO_DEPRECATED를 지정하면 더이상 사용되지 않는 코드들이 비활성화 된다. io_service가 io_context로 이름 변경io_context::dispatch가 dispatch 로 대체 됨io_context::post가 post 로 대체 됨io_context::strand::wrap이 bind_execuator 로 대체 됨io_context::get_io_context(), io_context::get_io_service()가 context() 함수로 이름 변경.io_context::strand::get_io_con.. 2019. 3. 11.
boost/asio simple periodic timer #include #include #include class PeriodicTimerExample{public: PeriodicTimerExample() : timer{ctx} { } void run() { tick(); ctx.run(); } private: void tick() { using namespace std; timer.expires_after(3s); timer.async_wait([this](const auto & err) { cout 2019. 3. 4.
boost::asio dynamic buffer asio에 dynamic_buffer라는 것이 추가되었다.asio::streambuf와 비슷하지만, 기존의 stl 컨테이너(std::vector, std::string 등)을 래퍼런스로 받아 조작하는 어뎁터 클래스이다.사용 방식은 다음과 같다. #include #include int main(){ using DynamicBuffer = boost::asio::dynamic_vector_buffer; std::vector buffer; DynamicBuffer dynamicBuffer = boost::asio::dynamic_buffer(buffer); return 0;} api도 기존의 asio::streambuf와 흡사하며 메모리를 공간을 확보, 반환해주는 prepare 함수의 경우 다음과 같이 구현되.. 2018. 5. 1.
boost 의존성 없이 사용하기. asio standalone asio를 boost 의존성 없이 단독으로 사용할 수 있다. 0. https://think-async.com/Asio/Download에서 asio를 다운 받는다.1. asio 소스를 프로젝트 내에 포함한다.2. 전처리기를 정의한다. #define ASIO_STANDALONE 그러면 boost가 아예 없어도 asio를 사용할 수 있다. ASIO_STANDALONE이 정의가 없으면 boost 의존성이 있으므로 주의!! boost::system::error_code -> asio::error_code 등으로 바뀌는 것들도 있다. 2018. 4. 7.