Триггеры в интерфейсе группы процессов используются для асинхронного приема и обработки сообщений, предназначенных для распределенных структур данных. триггерный интерфейс относительно универсален, что позволяет прикрепить любой функциональный объект к обработке запросов. Функция simple_trigger упрощает общий случай для триггеров: прикрепляет триггер, который вызывает определенную функцию члена распределенной структуры данных.
template<typename ProcessGroup, typename Class, typename T>
void
simple_trigger(ProcessGroup& pg, int tag, Class* self,
void (Class::*pmf)(int source, int tag, const T& data,
trigger_receive_context context))
template<typename ProcessGroup, typename Class, typename T, typename Result>
void
simple_trigger(ProcessGroup& pg, int tag, Class* self,
Result (Class::*pmf)(int source, int tag, const T& data,
trigger_receive_context context))
Функция simple_trigger регистрирует триггер, который вызывает данную функцию члена (pmf) на объекте self всякий раз, когда сообщение получено. Если функция-член имеет возвратное значение, то триггер имеет ответ, и может быть использован только через пересылку, которая ожидает ответа. В противном случае функция члена возвращает void, а функция зарегистрирована как обычный триггер.
Авторское право (C) 2007 Дуглас Грегор
Авторское право (C) 2007 Маттиас Тройер
Статья Parallel BGL Simple Triggers раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.