Back to Arangodb

Simple Triggers

3rdParty/boost/1.78.0/libs/graph_parallel/doc/simple_trigger.rst

3.12.9.12.2 KB
Original Source

.. Copyright (C) 2004-2008 The Trustees of Indiana University. Use, modification and distribution is subject to the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

============================ |Logo| Simple Triggers

.. contents::

Introduction

Triggers in the process group_ interface are used to asynchronously receive and process messages destined for distributed data structures. The trigger interface is relatively versatile, permitting one to attach any function object to handle requests. The simple_trigger function simplifies a common case for triggers: attaching a trigger that invokes a specific member function of the distributed data structure.

Where Defined

Header <boost/graph/parallel/simple_trigger.hpp>

Reference

::

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))

The simple_trigger function registers a trigger that invokes the given member function (pmf) on the object self whenever a message is received. If the member function has a return value, then the trigger has a reply, and can only be used via out-of-band sends that expect a reply. Otherwise, the member function returns void, and the function is registered as a normal trigger.


Copyright (C) 2007 Douglas Gregor

Copyright (C) 2007 Matthias Troyer

.. |Logo| image:: pbgl-logo.png :align: middle :alt: Parallel BGL :target: http://www.osl.iu.edu/research/pbgl

.. _process group: process_group.html