FreePOOMA  2.4.1
Public Member Functions | Protected Attributes
Relation3< Target, R1, R2, R3, RelationFunctor > Class Template Reference

Relation3 is a template used to construct relations that depend on three additional fields (e.g., a = b + c + d). More...

#include <Relations.h>

Inheritance diagram for Relation3< Target, R1, R2, R3, RelationFunctor >:
Inheritance graph
[legend]
Collaboration diagram for Relation3< Target, R1, R2, R3, RelationFunctor >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Relation3 (const Target &t, const R1 &r1, const R2 &r2, const R3 &r3, const RelationFunctor &f)
 ~Relation3 ()
void apply ()
virtual RelationListItemretarget (const Target &target) const

Protected Attributes

R1 r1_m
R2 r2_m
R3 r3_m

Detailed Description

template<class Target, class R1, class R2, class R3, class RelationFunctor>
class Relation3< Target, R1, R2, R3, RelationFunctor >

Relation3 is a template used to construct relations that depend on three additional fields (e.g., a = b + c + d).

The Target must be a Field. The RelationFunctor must be Default Constructable and Assignable. In addition, it must provide the constructor

template<class L, class R1, class R2, class R3> RelationFunctor(const L &, const R1 &, const R2 &, const R3 &, const RelationFunctor &)

and the member function

template<class L, class R1, class R2, class R3> void operator()(const L &const R1 &, const R2 &, const R3 &) const

where L, R1, R2, and R3 are Fields. The constructor should use the arguments to initialize itself and the function should apply the relation.


Constructor & Destructor Documentation

template<class Target, class R1, class R2, class R3, class RelationFunctor>
Relation3< Target, R1, R2, R3, RelationFunctor >::Relation3 ( const Target &  t,
const R1 &  r1,
const R2 &  r2,
const R3 &  r3,
const RelationFunctor &  f 
) [inline]
template<class Target, class R1, class R2, class R3, class RelationFunctor>
Relation3< Target, R1, R2, R3, RelationFunctor >::~Relation3 ( ) [inline]

Member Function Documentation

template<class Target, class R1, class R2, class R3, class RelationFunctor>
void Relation3< Target, R1, R2, R3, RelationFunctor >::apply ( ) [inline, virtual]
template<class Target, class R1, class R2, class R3, class RelationFunctor>
virtual RelationListItem* Relation3< Target, R1, R2, R3, RelationFunctor >::retarget ( const Target &  target) const [inline, virtual]

Member Data Documentation

template<class Target, class R1, class R2, class R3, class RelationFunctor>
R1 Relation3< Target, R1, R2, R3, RelationFunctor >::r1_m [protected]
template<class Target, class R1, class R2, class R3, class RelationFunctor>
R2 Relation3< Target, R1, R2, R3, RelationFunctor >::r2_m [protected]
template<class Target, class R1, class R2, class R3, class RelationFunctor>
R3 Relation3< Target, R1, R2, R3, RelationFunctor >::r3_m [protected]

The documentation for this class was generated from the following file: