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