SourcePro C++ 12.0 |
SourcePro® C++ API Reference Guide |
SourcePro C++ Documentation Home |
A sequence of functors whose invocation takes one argument. More...
#include <rw/functor/list/RWTFunctorList1.h>
Public Member Functions | |
RWTFunctorList1 (void) | |
~RWTFunctorList1 (void) | |
RWTFunctorList1 (const RWTFunctorList1< S1 > &second) | |
RWTFunctorList1< S1 > & | operator= (const RWTFunctorList1< S1 > &second) |
void | operator() (S1 s1) const |
void | add (const RWTFunctor1< S1 > &functor, RWCallbackScope scope) |
void | remove (const RWTFunctor1< S1 > &functor) |
void | update (void) |
RWTFunctorList1Imp< S1 > & | body (void) const |
The RWTFunctorList1 class is a sequence of functors whose invocation takes one argument.
A function object, or a functor, 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, short y) { cout << "x is " << x << " and y is " << y << endl; } void bar(int a) { cout << "a is " << a << endl; } int main () { // create new functors RWTFunctor1<int> fooFunctor = rwtMakeFunctor1((void(*)(int))0, foo, 6); RWTFunctor1<int> barFunctor = rwtMakeFunctor1((void(*)(int))0, bar); // create a new functor list RWTFunctorList1<int> 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(3); return 0; }
Program output:
x is 3 and y is 6 a is 3
RWTFunctorList1< S1 >::RWTFunctorList1 | ( | void | ) | [inline] |
Constructs an empty list instance.
RWTFunctorList1< S1 >::~RWTFunctorList1 | ( | void | ) | [inline] |
Destructor.
RWTFunctorList1< S1 >::RWTFunctorList1 | ( | const RWTFunctorList1< S1 > & | second | ) | [inline] |
Copy constructor. Creates a new list instance that shares its list representation with second.
void RWTFunctorList1< S1 >::add | ( | const RWTFunctor1< S1 > & | functor, | |
RWCallbackScope | scope | |||
) |
Adds the specified functor to the list. Duplicates are allowed, in which case the functor is run each time it appears.
The add request is stored until either the list is invoked, or the update() method is called.
RWTFunctorList1Imp< S1 > & RWTFunctorList1< S1 >::body | ( | void | ) | const [inline] |
Gets a reference for the body instance, if any; otherwise, throws an RWTHRInvalidPointer exception.
Reimplemented from RWTFunctor1< S1 >.
void RWTFunctorList1< S1 >::operator() | ( | S1 | s1 | ) | 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 that were added with the RW_CALL_ONCE flag.
If more than one thread attempts to invoke the list at any one time, the method throws an RWTHRInternalError exception.
Reimplemented from RWTFunctor1< S1 >.
RWTFunctorList1< S1 > & RWTFunctorList1< S1 >::operator= | ( | const RWTFunctorList1< S1 > & | second | ) | [inline] |
Assignment operator. Binds this list instance to another list's representation.
void RWTFunctorList1< S1 >::remove | ( | const RWTFunctor1< S1 > & | functor | ) |
Removes all entries from the list for the specified functor.
The remove request is stored until either the list is invoked, or the update() method is called.
void RWTFunctorList1< S1 >::update | ( | void | ) |
© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.