![]()  | 
![]() ![]() ![]() ![]()  | 
![]()  | 
signal_setBoost , Boost.Asio , Reference
  
  
   | 
||||||||||||||||||||||||||||||||||||||||
| 
                 Имя  | 
                 Описание  | 
|---|---|
Основной тип реализации объекта ввода/вывода.  | 
|
Тип службы, которая будет использоваться для обеспечения операций ввода-вывода.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
Добавить сигнал в набор сигнала.  | 
|
Начните асинхронную операцию, чтобы дождаться сигнала.  | 
|
Постройте набор сигналов без добавления каких-либо сигналов. Постройте набор сигналов и добавьте один сигнал. Постройте набор сигналов и добавьте два сигнала. Постройте набор сигналов и добавьте три сигнала.  | 
|
Отменить все операции, связанные с набором сигналов.  | 
|
Удалить все сигналы из набора сигналов.  | 
|
Получить услугу io_, связанную с объектом.  | 
|
Удалить сигнал из набора сигналов.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
Получить основную реализацию объекта ввода/вывода.  | 
|
Получить услугу, связанную с объектом ввода/вывода.  | 
| 
                 Имя  | 
                 Описание  | 
|---|---|
(Использовать get_implementation()) Основная реализация объекта ввода/вывода.  | 
|
(Использовать get_service()) Услуга, связанная с объектом ввода/вывода.  | 
.<basic_signal_set>шаблон класса обеспечивает возможность выполнять асинхронное ожидание одного или более сигналов.
Большинство приложений будет использовать<signal_set>typedef.
Отличительныеобъекты:Безопасные.
Общиеобъекты:небезопасны.
Выполнение асинхронного ожидания:
void handler( const boost::system::error_code& error, int signal_number) { if (!error) { // A signal occurred. } } ... // Construct a signal set registered for process termination. boost::asio::signal_set signals(io_service, SIGINT, SIGTERM); // Start an asynchronous wait for one of the signals to occur. signals.async_wait(handler);
Если сигнал регистрируется с помощью набора signal_set, и сигнал возникает, когда нет обработчиков ожидания, то уведомление о сигнале ставится в очередь. Следующая операция async_wait на этом наборе сигнала выполнит очередь из уведомления. Если несколько уведомлений стоят в очереди, последующие операции async_wait очерчивают их по одному за раз. Уведомления о сигналах размещаются в порядке номера восходящего сигнала.
Если номер сигнала удаляется из набора signal_set (используя функции<remove>или<erase>), то любые очерченные уведомления для этого сигнала отбрасываются.
Один и тот же номер сигнала может быть зарегистрирован с различными объектами. При появлении сигнала один обработчик вызывается для каждого заданного сигналом объекта.
Обратите внимание, что многократная регистрация работает только для сигналов, зарегистрированных с помощью Asio. Приложение также не должно регистрировать обработчик сигналов с использованием таких функций, как<signal()>или<sigaction()>.
POSIX позволяет блокировать сигналы с помощью таких функций, как<sigprocmask()>и<pthread_sigmask()>. Для передачи сигналов программы должны гарантировать, что любые сигналы, зарегистрированные с использованием объектов, установленных сигналом, разблокированы по меньшей мере в одном потоке.
Заголовок:<boost/asio/signal_set.hpp>
Удобный заголовок:<boost/asio.hpp>
Статья signal_set раздела Boost.Asio Reference может быть полезна для разработчиков на c++ и boost.
реклама  |