#include <boost/asio.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
void test() {
io_service ios;
deadline_timer t(ios, boost::posix_time::seconds(2));
cout << t.expires_at() << endl;
t.wait();
cout << "hello asio" << endl;
}
for async call
void print(const boost::system::error_code &e) {
cout << "hello asio in async_wait" << endl;
}
int main() {
io_service ios;
deadline_timer t(ios, boost::posix_time::seconds(2));
t.async_wait(print);
ios.run();
return 0;
}
async timer with bind
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <iostream>
#include <boost/date_time/posix_time/posix_time.hpp>
using namespace std;
using namespace boost::asio;
void print_1() {
cout << "hello asio" << endl;
}
void print_2() {
cout << "hello boost" << endl;
}
class a_timer {
public:
template<typename F>
a_timer(io_service &ios, int x, F func) :
d_f(func),
d_count_max(x),
d_count(0),
d_t(ios, boost::posix_time::millisec(500)) {
d_t.async_wait(bind(&a_timer::call_func, this, boost::asio::placeholders::error));
}
void call_func(const boost::system::error_code&) {
if(d_count >= d_count_max) {
return;