polybori::CApplyNodeFacade< DiagramType, NodePtr > Class Template Reference

This template class defines a facade as a C++ interface for applying C-style functions to C-style structs, which represent decision diagrams. It is used to wrapp functions calls to raw pointers of the nodes and the context to an C++-style object. More...

#include <CApplyNodeFacade.h>

List of all members.

Public Types

Template arguments
typedef DiagramType diagram_type
typedef NodePtr node_ptr

Public Member Functions

Logical operations
bool operator== (const diagram_type &rhs) const
 Equality.
bool operator!= (const diagram_type &rhs) const
 Nonequality.

Protected Member Functions

void checkSameManager (const diagram_type &other) const
 Test, whether both operands.
diagram_type diagram (node_ptr node) const
 Get diagram of the same context.
Apply C-style procedures to nodes
template<class MgrType>
diagram_type apply (node_ptr(*func)(MgrType, node_ptr)) const
 Unary function.
template<class MgrType>
diagram_type apply (node_ptr(*func)(MgrType, node_ptr, node_ptr), const diagram_type &rhs) const
 Binary function (two diagrams).
template<class MgrType>
diagram_type apply (node_ptr(*func)(MgrType, node_ptr, node_ptr, node_ptr), const diagram_type &first, const diagram_type &second) const
 Ternary function (three diagrams).
template<class MgrType, class Type>
diagram_type apply (node_ptr(*func)(MgrType, node_ptr, Type), Type value) const
 Binary functions with non-diagram right-hand side.
template<class MgrType, class ResultType>
ResultType apply (ResultType(*func)(MgrType, node_ptr)) const
 Unary functions with non-diagram result value.


Detailed Description

template<class DiagramType, class NodePtr>
class polybori::CApplyNodeFacade< DiagramType, NodePtr >

This template class defines a facade as a C++ interface for applying C-style functions to C-style structs, which represent decision diagrams. It is used to wrapp functions calls to raw pointers of the nodes and the context to an C++-style object.

Attention:
We assume that the DiagramType owns member functions ring(), getNode() and getManager().
Note:
This template class is a facade and hence it is intented for internal use only, e.g. as a base class for BooleSet.

Member Typedef Documentation

template<class DiagramType, class NodePtr>
typedef DiagramType polybori::CApplyNodeFacade< DiagramType, NodePtr >::diagram_type

template<class DiagramType, class NodePtr>
typedef NodePtr polybori::CApplyNodeFacade< DiagramType, NodePtr >::node_ptr


Member Function Documentation

template<class DiagramType, class NodePtr>
bool polybori::CApplyNodeFacade< DiagramType, NodePtr >::operator== ( const diagram_type rhs  )  const [inline]

Equality.

template<class DiagramType, class NodePtr>
bool polybori::CApplyNodeFacade< DiagramType, NodePtr >::operator!= ( const diagram_type rhs  )  const [inline]

Nonequality.

template<class DiagramType, class NodePtr>
void polybori::CApplyNodeFacade< DiagramType, NodePtr >::checkSameManager ( const diagram_type other  )  const [inline, protected]

Test, whether both operands.

template<class DiagramType, class NodePtr>
template<class MgrType>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( node_ptr(*)(MgrType, node_ptr func  )  const [inline, protected]

Unary function.

template<class DiagramType, class NodePtr>
template<class MgrType>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( node_ptr(*)(MgrType, node_ptr, node_ptr func,
const diagram_type rhs 
) const [inline, protected]

Binary function (two diagrams).

template<class DiagramType, class NodePtr>
template<class MgrType>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( node_ptr(*)(MgrType, node_ptr, node_ptr, node_ptr func,
const diagram_type first,
const diagram_type second 
) const [inline, protected]

Ternary function (three diagrams).

template<class DiagramType, class NodePtr>
template<class MgrType, class Type>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( node_ptr(*)(MgrType, node_ptr, Type)  func,
Type  value 
) const [inline, protected]

Binary functions with non-diagram right-hand side.

template<class DiagramType, class NodePtr>
template<class MgrType, class ResultType>
ResultType polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( ResultType(*)(MgrType, node_ptr func  )  const [inline, protected]

Unary functions with non-diagram result value.

template<class DiagramType, class NodePtr>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::diagram ( node_ptr  node  )  const [inline, protected]

Get diagram of the same context.


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

Generated on Wed Jan 30 16:39:53 2013 for PolyBoRi by  doxygen 1.5.6