RWFunctorList0 RWFunctor0
Functor List, subpackage of Functor
#include <rw/functor/list/RWFunctorList0.h>
The RWFunctor0List class is a sequence of functors whose invocation takes no arguments.
A function object, or a functor, is an object that encapsulates a call to an associated function. When a functor is invoked, it calls the associated function.
A functor list is a sequence of such functors. The list's invocation results in the invocation of all functors contained in the list. This is useful when you wish to connect more that one invocation to a particular action.
void foo(int x) { cout << "foo was called with " << x << endl; } void bar() { cout << "bar was called" << endl; } int main () { // create new functors RWFunctor0 fooFunctor = rwtMakeFunctor0(0,foo, 4); RWFunctor2 barFunctor = rwtMakeFunctor0(0,bar); // create a new functor list RWFunctorList0 flist; // add the functors to the list flist.add(fooFunctor, RW_CALL_REPEATEDLY); flist.add(barFunctor, RW_CALL_REPEATEDLY); // invoke the list and see that both the functors are called flist(); return 0; } OUTPUT: foo was called with 4 bar was called
RWFunctorList0(void);
Constructs an empty list instance.
RWFunctorList0(const RWFunctorList0& second);
Copy constructor. Creates a new list instance that shares its list representation with another list.
RWFunctorList0& operator=(const RWFunctorList0& second);
Assignment operator. Binds this list instance to another list's representation.
void operator()() const;
Invokes the functor list. This includes updating the list with any stored adds or removes, invoking each functor in the list, and removing any functors which were added with the RW_CALL_ONCE flag.
If more than one thread attempts to invoke the list at any one time, an RWTHRInternalError exception is thrown.
void add(const RWFunctor0& functor, RWCallbackScope scope);
Adds the specified functor to the list. Duplicates are allowed in the list. In such cases the functor is run once for each time it appears in the list.
The add request is stored until either the list is invoked, or the update() method is called.
void remove(const RWFunctor0& functor);
Removes all entries from the list that contain the specified functor.
The remove request is stored until either the list is invoked, or the update() method is called.
void update(void);
Updates the list with any add() or remove() requests that have occurred since the last invocation.
©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.