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

system_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 basic_waitable_timer< chrono::system_clock > system_timer;
Types

Имя

Описание

Часы_тип

Тип часов.

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

Тип часов.

реализация_тип

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

service_type

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

Time_point

Тип часов.

черты_тип

Тип ожидания.

Member Functions

Имя

Описание

async_wait

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

basic_waitable_timer

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

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

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

отменить

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

отменяем один

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

истекает

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

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

истекает_из_сейчас

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

Установите время истечения таймера относительно сейчас.

get_io_service

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

ждать

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

Protected Member Functions

Имя

Описание

get_implementation

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

get_service

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

Protected Data Members

Имя

Описание

реализация

(Использовать get_implementation()) Основная реализация объекта ввода/вывода.

(Использовать get_service()) Услуга, связанная с объектом ввода/вывода.

Шаблон классов<basic_waitable_timer>обеспечивает возможность выполнения блокирующего или асинхронного ожидания истечения таймера.

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

Большинство приложений будут использовать один из<steady_timer>,<system_timer>или<high_resolution_timer>типдефов.

Remarks

Эта функция выжидательного таймера предназначена для использования со стандартной библиотекой C++11<<chrono>>или с Boost. Библиотека Хроно.

Thread Safety

Отличиеобъекты:Сейф.

Общийобъекты:небезопасны.

Examples

Выполнение ожидания блокировки (C++11):

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

Выполнение асинхронного ожидания (C++11):

void handler(const boost::system::error_code& error)
{
  if (!error)
  {
    // Timer expired.
  }
}
...
// Construct a timer with an absolute expiry time.
boost::asio::steady_timer timer(io_service,
    std::chrono::steady_clock::now() + std::chrono::seconds(60));
// Start an asynchronous wait.
timer.async_wait(handler);
Changing an active waitable 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_waitable_timer::expires_from_now()>отменяет любые ожидающие асинхронные ожидания и возвращает количество асинхронных ожиданий, которые были отменены. Если он возвращается 0, то вы опоздали, и обработчик ожидания уже выполнен или скоро будет выполнен. Если он возвращается 1 то обработчик ожидания был успешно отменен.
  • Если обработчик ожидания отменяется, то переданный ему бустер::system::error_code содержит значение<boost::asio::error::operation_aborted>.

В этом типдефе используется стандартная библиотека C++11<<chrono>>. В противном случае он может использовать бустер. Библиотека Хроно. Явно использовать Boost. Хроно, используйте<basic_waitable_timer>шаблон непосредственно:

typedef basic_waitable_timer<boost::chrono::system_clock> timer;
Requirements

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

Удобный заголовок:Никто


PrevUpHomeNext

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




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



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


реклама


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

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