Timer.4 - 핸들러로 멤버 함수를 사용 (Using a member function as a handler) 이 튜토리얼에서는 클래스 멤버 함수를 콜백 핸들러로 사용하는 방법을 볼 것이다. 이 프로그램은 튜토리얼 Timer.3에 있는 튜토리얼 프로그램과 동일하게 실행되어야 한다. #include #include #include 이전 튜토리얼 프로그램에서 했던 것처럼, 사용가능한 print를 콜백 핸들러로 정의하는 대신에 이제는 printer라는 클래스를 정의한다. class printer { public: 이 클래스의 생성자는 io_context의 객체에 대한 참조를 가져와서 timer_ 멤버를 초기화할 때 사용한다. 프로그램을 종료하는 데 사용되는 카운터 역시 이제는 클래스 멤버이다. printe..
Timer.3 소스 (Source listing for Timer.3) // // timer.cpp // ~~~~~~~~~ // // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #include #include #include void print(const boost::system::error_code& /*e*/, boost::asi..
Timer.3 - 핸들러에 대한 바인딩 인수 (Binding arguments to a handler) 이 튜토리얼에서는 타이머가 초당 한번 발생하도록 튜토리얼 Timer.2의 프로그램을 수정할 것이다. 여기서 핸들러 함수에 추가 파라미터를 전달하는 방법을 보여줄 것이다. #include #include #include asio를 사용하여 반복 타이머를 구현하려면, 콜백 함수에서 타이머의 만료 시간을 변경한 다음에 신규 비동기 대기를 시작해야 한다. 분명히 이것은 콜백 함수가 타이머 개체에 접근할 수 있어야 한다는 것을 의미한다. 이를 위해 print 함수에 두 개의 신규 파라미터를 추가한다. 타이머 개체에 대한 포인터 타이머가 여섯 번째 발생될 때 프로그램을 중지할 수 있는 카운터 void print(..
Timer.2 소스 (Source listing for Timer.2) // // timer.cpp // ~~~~~~~~~ // // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #include #include void print(const boost::system::error_code& /*e*/) { std::cout
Timer.1 소스 (Source listing for Timer.1) // // timer.cpp // ~~~~~~~~~ // // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #include #include int main() { boost::asio::io_context io; boost::asio::steady_timer t(i..