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...
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.
|
|
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.
|
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.