Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

deadline_timer

Boost , Boost.Asio , Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Typedef для типичного использования таймера. использует часы UTC.

typedef basic_deadline_timer< boost::posix_time::ptime > deadline_timer;
Types

Имя

Описание

duration_type

Тип продолжительности.

implementation_type

Основной тип реализации объекта I/O.

сервис_type

Тип сервиса, который будет использоваться для обеспечения операций I/O.

time_type

Тип времени.

traits_type

Тип признаков времени.

Member Functions

Имя

Описание

async_wait

Начните асинхронное ожидание на таймере.

basic_deadline_timer

Конструктор.

Конструктор устанавливает определенное время истечения срока действия как абсолютное время.

Конструктор должен установить определенное время истечения срока действия по отношению к настоящему времени.

сканировать

Отменить любые асинхронные операции, которые ждут на таймере.

cancel_one

Отменяет одну асинхронную операцию, которая ждет на таймере.

expires_at

Получить время истечения срока действия таймера как абсолютное время.

Установите время истечения срока действия таймера как абсолютное время.

expires_from_now

Время истечения срока действия таймера по отношению к настоящему времени.

Установите время истечения срока действия таймера по отношению к настоящему времени.

get_io_service

Получить io_сервис, связанный с объектом.

wait

Выполняйте блокирующее ожидание на таймере.

Protected Member Functions

Имя

Описание

get_implementation

Получить основную реализацию объекта I/O.

get_service

Получить услугу, связанную с объектом I/O.

Protected Data Members

Имя

Описание

осуществление

(Deprecated: Use get_implementation().) The underlying implementation of the I/O object.

сервис

(Deprecated: Use get_service(). Сервис, связанный с объектом I/O.

basic_deadline_timer шаблон класса предоставляет возможность выполнять блокировку или асинхронное ожидание истечения таймера.

Срок таймер всегда в одном из двух состояний: «выжил» или «не истек». Если функция wait() или async_wait() называется на просроченном таймере, операция ожидания будет завершена немедленно.

Большинство приложений будет использовать deadline_timer typedef.

Thread Safety

Distinct объекты: Безопасно.

Составлено объекты: Небезопасны.

Examples

Выполнение блокировки ожидания:

// Construct a timer without setting an expiry time.
boost::asio::deadline_timer timer(io_service);
// Set an expiry time relative to now.
timer.expires_from_now(boost::posix_time::seconds(5));
// Wait for the timer to expire.
timer.wait();

Выполнение асинхронного ожидания:

void handler(const boost::system::error_code& error)
{
  if (!error)
  {
    // Timer expired.
  }
}
...
// Construct a timer with an absolute expiry time.
boost::asio::deadline_timer timer(io_service,
    boost::posix_time::time_from_string("2005-12-07 23:59:59.000"));
// Start an asynchronous wait.
timer.async_wait(handler);
Changing an active deadline_timer's expiry time

Изменение времени истечения срока действия таймера во время ожидания асинхронного ожидания приводит к отмене этих операций ожидания. Для обеспечения того, чтобы действие, связанное с таймером, выполнялось только один раз, используйте что-то подобное:

void on_some_event()
{
  if (my_timer.expires_from_now(seconds(5)) > 0)
  {
    // We managed to cancel the timer. Start new asynchronous wait.
    my_timer.async_wait(on_timeout);
  }
  else
  {
    // Too late, timer has already expired!
  }
}
void on_timeout(const boost::system::error_code& e)
{
  if (e != boost::asio::error::operation_aborted)
  {
    // Timer was not cancelled, take necessary action.
  }
}
  • boost::asio::basic_deadline_timer::expires_from_now() функция отменяет любые ожидающие асинхронные ожидания и возвращает количество асинхронных ожидания, которые были отменены. Если он возвращает 0, то вы были слишком поздно, и официант уже был казнен или вскоре будет казнен. Если он возвращает 1, то официант был успешно отменен.
  • Если обработчик ожидания отменяется, то в нем содержится бульон::system::error_code значение boost::asio::error::operation_aborted.
Requirements

Здрайвер: >boost/asio/deadline_timer.hpp

Заголовок: boost/asio.hpp


PrevUpHomeNext

Статья deadline_timer раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 02:57:34/0.0044958591461182/0