⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 time_t_timer.cpp

📁 Boost provides free peer-reviewed portable C++ source libraries. We emphasize libraries that work
💻 CPP
字号:
//// time_t_timer.cpp// ~~~~~~~~~~~~~~~~//// Copyright (c) 2003-2008 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 <boost/asio.hpp>#include <ctime>#include <iostream>struct time_t_traits{  // The time type.  typedef std::time_t time_type;  // The duration type.  struct duration_type  {    duration_type() : value(0) {}    duration_type(std::time_t v) : value(v) {}    std::time_t value;  };  // Get the current time.  static time_type now()  {    return std::time(0);  }  // Add a duration to a time.  static time_type add(const time_type& t, const duration_type& d)  {    return t + d.value;  }  // Subtract one time from another.  static duration_type subtract(const time_type& t1, const time_type& t2)  {    return duration_type(t1 - t2);  }  // Test whether one time is less than another.  static bool less_than(const time_type& t1, const time_type& t2)  {    return t1 < t2;  }  // Convert to POSIX duration type.  static boost::posix_time::time_duration to_posix_duration(      const duration_type& d)  {    return boost::posix_time::seconds(d.value);  }};typedef boost::asio::basic_deadline_timer<    std::time_t, time_t_traits> time_t_timer;void handle_timeout(const boost::system::error_code&){  std::cout << "handle_timeout\n";}int main(){  try  {    boost::asio::io_service io_service;    time_t_timer timer(io_service);    timer.expires_from_now(5);    std::cout << "Starting synchronous wait\n";    timer.wait();    std::cout << "Finished synchronous wait\n";    timer.expires_from_now(5);    std::cout << "Starting asynchronous wait\n";    timer.async_wait(handle_timeout);    io_service.run();    std::cout << "Finished asynchronous wait\n";  }  catch (std::exception& e)  {    std::cout << "Exception: " << e.what() << "\n";  }  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -