PolyBoRi
Protected Member Functions | List of all members
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>

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. More...
 
bool operator!= (const diagram_type &rhs) const
 Nonequality. More...
 

Protected Member Functions

void checkSameManager (const diagram_type &other) const
 Test, whether both operands. More...
 
diagram_type diagram (node_ptr node) const
 Get diagram of the same context. More...
 
Apply C-style procedures to nodes
template<class MgrType >
diagram_type apply (node_ptr(*func)(MgrType, node_ptr)) const
 Unary function. More...
 
template<class MgrType >
diagram_type apply (node_ptr(*func)(MgrType, node_ptr, node_ptr), const diagram_type &rhs) const
 Binary function (two diagrams) More...
 
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) More...
 
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. More...
 
template<class MgrType , class ResultType >
ResultType apply (ResultType(*func)(MgrType, node_ptr)) const
 Unary functions with non-diagram result value. More...
 

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>
template<class MgrType >
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::apply ( node_ptr(*)(MgrType, node_ptr func) const
inlineprotected

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
inlineprotected

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
inlineprotected

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
inlineprotected

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
inlineprotected

Unary functions with non-diagram result value.

template<class DiagramType, class NodePtr>
void polybori::CApplyNodeFacade< DiagramType, NodePtr >::checkSameManager ( const diagram_type other) const
inlineprotected

Test, whether both operands.

template<class DiagramType, class NodePtr>
diagram_type polybori::CApplyNodeFacade< DiagramType, NodePtr >::diagram ( node_ptr  node) const
inlineprotected

Get diagram of the same context.

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

Nonequality.

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

Equality.


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