coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker > Class Template Reference
[Evaluators]

Base class of all (non-caching) forward evaluators. More...

#include <evaluator.h>

Inheritance diagram for coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >:

Inheritance graph
[legend]
Collaboration diagram for coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >:

Collaboration graph
[legend]

List of all members.

Public Types

typedef _Base::node_data_type node_data_type
typedef _Base::return_value return_value
typedef _Base::const_walker const_walker
typedef _Tp data_type

Public Member Functions

int preorder (const node_data_type &__data)
void postorder (const node_data_type &__data)
int collect (const node_data_type &__data, const return_value &__rval)
int vcollect (const return_value &__rval)
return_value value ()
return_value vvalue ()
void vinit ()
virtual void initialize ()
virtual int initialize (const node_data_type &__data)
virtual void calculate (const node_data_type &__data)
virtual void cleanup (const node_data_type &__data)
virtual int update (const return_value &__rval)
virtual int update (const node_data_type &__data, const return_value &__rval)
virtual return_value calculate_value (bool eval_all)
virtual int preorder (const node_data_type &__data)
virtual const_walker short_cut_to (const node_data_type &__data)
virtual int vcollect (const return_value &__cresult)
virtual int collect (const node_data_type &__data, const return_value &__cresult)
virtual void postorder (const node_data_type &__data)

Protected Attributes

_Tp eval_data


Detailed Description

template<class _Tp, class _NData, class _Result, class _Walker>
class coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >

This class is the base class of all non-caching forward evaluators. Basically, it is a visitor to expression_node nodes in a DAG, based on evaluator_base.

Definition at line 475 of file evaluator.h.


Member Typedef Documentation

template<class _Tp , class _NData , class _Result , class _Walker >
typedef _Base::const_walker coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::const_walker

This is the type of the walker, which is used for the short-cuts.

Reimplemented from coco::evaluator_base< _Tp, _NData, _Result, _Walker >.

Definition at line 489 of file evaluator.h.

typedef _Tp coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::data_type [inherited]

The data_type specifies the type of the internal data of the evaluator.

Definition at line 305 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
typedef _Base::node_data_type coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::node_data_type

The node_data_type is the datatype of the nodes of the graph.

Reimplemented from coco::evaluator_base< _Tp, _NData, _Result, _Walker >.

Definition at line 485 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
typedef _Base::return_value coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::return_value

This type is the result type of the evaluator.

Reimplemented from coco::evaluator_base< _Tp, _NData, _Result, _Walker >.

Definition at line 487 of file evaluator.h.


Member Function Documentation

template<class _Tp , class _NData , class _Result , class _Walker >
virtual void coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::calculate ( const node_data_type __data  )  [inline, virtual]

This method is called right after all children of a node have been visited. The __data parameter contains the node data of the graph node being visited.

Definition at line 547 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual return_value coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::calculate_value ( bool  eval_all  )  [inline, virtual]

This method is called last for every graph node, and it produces the return value of the visitor. The parameter eval_all is true whether the node is a virtual node.

Definition at line 577 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual void coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::cleanup ( const node_data_type __data  )  [inline, virtual]

The cleanup method is called just before calculate_value and should be used to clean up dynamically allocated data. The __data parameter contains the node data of the graph node being visited.

Definition at line 551 of file evaluator.h.

virtual int coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::collect ( const node_data_type &  __data,
const return_value &  __cresult 
) [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called for each normal node everytime a child node has been visited passing the return value of the child. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 359 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::collect ( const node_data_type __data,
const return_value __rval 
) [inline]

This method is needed by a visitor (see VGTL documentation) and is called for each normal node everytime a child node has been visited passing the return value of the child. It is translated to a call to update.

Definition at line 506 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::initialize ( const node_data_type __data  )  [inline, virtual]

This method is called at a normal node before any children are visited. The __data parameter contains the node data of the graph node being visited. The return value determines how the graph walk proceeds.
<0perform a short-cut (the short_cut_to method will be called),
0don't visit the children, proceed with postorder,
>0continue with the walk by visiting the children.

Definition at line 543 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual void coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::initialize (  )  [inline, virtual]

This method is called at a virtual node before any children are visited.

Definition at line 532 of file evaluator.h.

virtual void coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::postorder ( const node_data_type &  __data  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right after all children of a node have been visited.

Definition at line 364 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
void coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::postorder ( const node_data_type __data  )  [inline]

This method is needed by a visitor (see VGTL documentation) and is called right after all children of a node have been visited. It is translated into calls to calculate and cleanup.

Definition at line 500 of file evaluator.h.

virtual int coco::evaluator_base< _Tp , _NData , _Result , _Walker >::preorder ( const node_data_type &  __data  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called right before any children of a node are visited. The return value of the method influences the further graph walk:
<0perform a short-cut (the short_cut_to method will be called),
0don't visit the children, proceed with postorder,
>0continue with the walk by visiting the children.

Definition at line 401 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::preorder ( const node_data_type __data  )  [inline]

This method is needed by a visitor (see VGTL documentation) and is called right before any children of a node are visited. It is translated into a call to initialize.

Definition at line 495 of file evaluator.h.

virtual const_walker coco::evaluator_base< _Tp , _NData , _Result , _Walker >::short_cut_to ( const node_data_type &  __data  )  [inline, virtual, inherited]

The short_cut_to method is called whenever a short-cut is signalled during the graph walk, and the const_walker returned is the target of the short-cut.

Definition at line 405 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::update ( const node_data_type __data,
const return_value __rval 
) [inline, virtual]

The update method is called for each virtual node everytime a child node has been visited passing the return value of the child. The __data parameter contains the node data of the graph node being visited. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 572 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
virtual int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::update ( const return_value __rval  )  [inline, virtual]

The update method is called for each virtual node everytime a child node has been visited passing the return value of the child. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 561 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
return_value coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::value (  )  [inline, virtual]

This method is needed by a visitor (see VGTL documentation) and is called right before the end of the visit of a normal node to retrieve the return value. It is translated to a call to calculate_value with parameter false.

Reimplemented from coco::_evaluator_base< _Tp,_NData,_Result,_Walker >.

Definition at line 518 of file evaluator.h.

virtual int coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::vcollect ( const return_value &  __cresult  )  [inline, virtual, inherited]

This method is needed by a visitor (see VGTL documentation) and is called for each virtual node everytime a child node has been visited passing the return value of the child. The return value has the following effect:
<0stop visiting children of this node,
0continue with the graph walk downwards the next child,
>0skip as many children.

Definition at line 348 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
int coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::vcollect ( const return_value __rval  )  [inline]

This method is needed by a visitor (see VGTL documentation) and is called for each virtual node everytime a child node has been visited passing the return value of the child. It is translated to a call to update.

Definition at line 512 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
void coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::vinit (  )  [inline]

This method is needed by a visitor using recursive_short_cut_walk for traversing the graph. It is called before performing any graph walk when at a virtual node. It is translated to initialize.

Definition at line 527 of file evaluator.h.

template<class _Tp , class _NData , class _Result , class _Walker >
return_value coco::forward_evaluator_base< _Tp, _NData, _Result, _Walker >::vvalue (  )  [inline, virtual]

This method is needed by a visitor (see VGTL documentation) and is called right before the end of the visit of a virtual node to retrieve the return value. It is translated to a call to calculate_value with parameter true.

Reimplemented from coco::_evaluator_base< _Tp,_NData,_Result,_Walker >.

Definition at line 523 of file evaluator.h.


Member Data Documentation

_Tp coco::_evaluator_base< _Tp , _NData , _Result , _Walker >::eval_data [protected, inherited]

The internal data of the evaluator

Definition at line 316 of file evaluator.h.


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

Generated on Tue Feb 9 14:48:27 2010 for COCONUT API by  doxygen 1.5.8