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

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

#include <Relations.h>

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

List of all members.

Public Member Functions

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

Protected Attributes

R1 r1_m
R2 r2_m
R3 r3_m
R4 r4_m

Detailed Description

template<class Target, class R1, class R2, class R3, class R4, class RelationFunctor>
class Relation4< Target, R1, R2, R3, R4, RelationFunctor >

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

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, class R4> RelationFunctor(const L &, const R1 &, const R2 &, const R3 &, const R4 &, const RelationFunctor &)

and the member function

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

where L, R1, R2, R3, and R4 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 R4, class RelationFunctor>
Relation4< Target, R1, R2, R3, R4, RelationFunctor >::Relation4 ( const Target &  t,
const R1 &  r1,
const R2 &  r2,
const R3 &  r3,
const R4 &  r4,
const RelationFunctor &  f 
) [inline]
template<class Target, class R1, class R2, class R3, class R4, class RelationFunctor>
Relation4< Target, R1, R2, R3, R4, RelationFunctor >::~Relation4 ( ) [inline]

Member Function Documentation

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

Member Data Documentation

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

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