Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

RWTFunctor1Imp<S1>


RWTFunctor1Imp<S1> RWBodyBase RWTFunctor1<S1> Implementation Classes RWTFunctor1Imp<S1>

Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Data Types

Member Functions

Package

Functor

Header Files

#include <rw/functor/RWTFunctor1Imp.h>

#include <rw/functor/RWTFunctor1GImp.h>
#include <rw/functor/RWTFunctor1GA1Imp.h>
#include <rw/functor/RWTFunctor1GA2Imp.h>
#include <rw/functor/RWTFunctor1MImp.h>
#include <rw/functor/RWTFunctor1MA1Imp.h>
#include <rw/functor/RWTFunctor1MA2Imp.h>

Description

A function object, or a functor, is an object that encapsulates a call to an associated global or member function. When a functor is invoked, it calls the associated function.

RWTFunctor1Imp<S1> is the abstract base class for the family of functor bodies that are invoked with one argument and return no value.

The make() function is the only member of these functor classes that is intended to be accessed directly; it is often called through one of the rwtMakeFunctor0() convenience mechanisms. All other members must be accessed through an RWFunctor0 handle.

Each derived class name appends either a G (for global) or an M (for member), to indicate whether or not it is invoked upon an object. Static member functions use the G version since there is no object associated with the call.

The class name may also append A1 or A2, to indicate that it takes callee arguments at construction time. These arguments are stored in the functor body and then added to the caller argument at invocation time.

The six concrete class names are:

RWTFunctor1GImp<S1,DR,D1> No this object, no callee arguments
RWTFunctor1GA1Imp<S1,DR,D1,A1> No this object, one callee argument
RWTFunctor1GA2Imp<S1,DR,D1,A1,A2> No this object, two callee arguments
RWTFunctor1MImp<S1,Callee,DR,D1> Has this object, but no callee arguments
RWTFunctor1MA1Imp<S1,Callee,D1,DR,A1> Has this object, and one callee argument
RWTFunctor1MA2Imp<S1,Callee,DR,D1,A1,A2> Has this object, and two callee arguments

These concrete classes are templatized on the signature of the function that is encapsulated, as well as on the signature of the functor invocation.

The template parameters describe the invocation signature of the functor and the function call it encapsulates. These parameters are:

Example

#include <rw/functor/RWTFunctor1GImp.h>

void foo(int);

// Create a functor that calls foo():
RWTFunctor1<int> func = RWTFunctor1GImp<int,void,int>::make(foo);
// Invoke Functor
func(7);

Public Typedefs

typedef DR (*CalleeSignature)(D1);
typedef DR (*CalleeSignature)(D1,A1);
typedef DR (*CalleeSignature)(D1,A1,A2);
typedef DR (Callee::*CalleeSignature)(D1);
typedef DR (Callee::*CalleeSignature)(D1,A1);
typedef DR (Callee::*CalleeSignature)(D1,A1,A2);

Static Member Functions

static
RWTFunctor1<S1>
RWTFunctor1GImp<S1,DR,D1>::
make(CalleeSignature function);
static
RWTFunctor1<S1>
RWTFunctor1GA1Imp<S1,DR,D1,A1>::
make(CalleeSignature function,
     A1 a1);
static
RWTFunctor1<S1>
RWTFunctor1GA2Imp<S1,DR,D1,A1,A2>::
make(CalleeSignature function,
     A1 a1,
     A2 a2);
static
RWTFunctor1<S1>
RWTFunctor1MImp<S1,Callee,DR,D1>::
make(Callee& callee,
     CalleeSignature function);
static
RWTFunctor1<S1>
RWTFunctor1MA1Imp<S1,Callee,DR,D1,A1>::
make(Callee& callee,
     CalleeSignature function,
     A1 a1);
static
RWTFunctor1<S1>
RWTFunctor1MA2Imp<S1,Callee,DR,D1,A1,A2>::
make(Callee& callee,
     CalleeSignature function,
     A1 a1,
     A2 a2);

See Also

rwtMakeFunctor1, RWTFunctor1<S1>



Previous fileTop of DocumentContentsIndexNext file

©Copyright 2000, Rogue Wave Software, Inc.
Contact Rogue Wave about documentation or support issues.