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

basic_signal_set

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

Предоставляет функциональность сигнала.

template<
    typename SignalSetService = signal_set_service>
class basic_signal_set :
  public basic_io_object< SignalSetService >
Types

Имя

Описание

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

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

service_type

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

Member Functions

Имя

Описание

добавить

Добавить сигнал в набор сигнала.

async_wait

Начните асинхронную операцию, чтобы дождаться сигнала.

basic_signal_set

Постройте набор сигналов без добавления каких-либо сигналов.

Постройте набор сигналов и добавьте один сигнал.

Постройте набор сигналов и добавьте два сигнала.

Постройте набор сигналов и добавьте три сигнала.

отменить

Отменить все операции, связанные с набором сигнала.

ясно

Удалить все сигналы из набора сигналов.

get_io_service

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

удалить

Удалить сигнал из набора сигналов.

Protected Member Functions

Имя

Описание

get_implementation

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

get_service

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

Protected Data Members

Имя

Описание

реализация

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

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

.<basic_signal_set>шаблон класса обеспечивает возможность выполнять асинхронное ожидание одного или более сигналов.

Большинство приложений используют.<signal_set>Типдеф.

Thread Safety

Отличительныеобъекты:Безопасные.

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

Example

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

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);
Queueing of signal notifications

Если сигнал регистрируется с помощью набора signal_set, и сигнал возникает, когда нет обработчиков ожидания, то уведомление о сигнале ставится в очередь. Следующая операция async_wait на этом наборе сигнала выполнит очередь из уведомления. Если несколько уведомлений стоят в очереди, последующие операции async_wait очерчивают их по одному за раз. Уведомления о сигналах размещаются в порядке номера восходящего сигнала.

Если номер сигнала удаляется из набора signal_set (используя функции<remove>или<erase>), то любые очерченные уведомления для этого сигнала отбрасываются.

Multiple registration of signals

Один и тот же номер сигнала может быть зарегистрирован с различными объектами. При появлении сигнала один обработчик вызывается для каждого заданного сигналом объекта.

Обратите внимание, что многократная регистрация работает только для сигналов, зарегистрированных с помощью Asio. Приложение также не должно регистрировать обработчик сигналов с использованием таких функций, как<signal()>или<sigaction()>.

Signal masking on POSIX platforms

POSIX позволяет блокировать сигналы с помощью таких функций, как<sigprocmask()>и<pthread_sigmask()>. Для передачи сигналов программы должны гарантировать, что любые сигналы, зарегистрированные с использованием объектов, установленных сигналом, разблокированы по меньшей мере в одном потоке.

Requirements

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

Удобный заголовок:<boost/asio.hpp>


PrevUpHomeNext

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 01:07:18/0.004127025604248/0