00001 // -*- c++ -*- 00002 //***************************************************************************** 00033 //***************************************************************************** 00034 00035 #include <iterator> 00036 00037 // include basic definitions 00038 #include "pbori_defs.h" 00039 00040 00041 00042 // get navigator type for cudd zdds 00043 #include "CCuddNavigator.h" 00044 00045 #ifndef CCuddGetNode_h_ 00046 #define CCuddGetNode_h_ 00047 00048 BEGIN_NAMESPACE_PBORI 00049 00050 template <class ManagerType> 00051 class CDDManager; 00052 00059 class CCuddGetNode { 00060 00061 public: 00063 typedef CCuddNavigator node_type; 00064 00066 typedef Cudd manager_type; 00067 00069 typedef CTypes::idx_type idx_type; 00070 00072 typedef CCuddGetNode self; 00073 00075 CCuddGetNode(const manager_type&); 00076 00078 CCuddGetNode(const self&); 00079 00081 ~CCuddGetNode(); 00082 00084 node_type operator()(idx_type idx, 00085 const node_type& thennode, 00086 const node_type& elsenode) const; 00087 00089 node_type operator()(idx_type idx, const node_type& oldnode, 00090 const node_type& thennode, 00091 const node_type& elsenode) const; 00092 00094 node_type operator()(const node_type& oldnode) const; 00095 00096 protected: 00097 const manager_type& mgr; 00098 }; 00099 00100 END_NAMESPACE_PBORI 00101 00102 #endif