summaryrefslogtreecommitdiff
path: root/src/expr/node_manager.h
diff options
context:
space:
mode:
authorAina Niemetz <aina.niemetz@gmail.com>2021-03-08 16:59:35 -0800
committerGitHub <noreply@github.com>2021-03-08 16:59:35 -0800
commit86ce1c18f8ea7a397a8b12405a196b126e82b648 (patch)
tree2a0314d82d960157a3427396a29f3bc115646ac2 /src/expr/node_manager.h
parentaaa11781d257d163cbd8b67c695716a16232f57a (diff)
New C++ API: Migrate to Node layer. (#6070)
The following items will be added / adressed in subsequent PRs: * migrate statistics tracking for variables and bound variables * migrate adding of listeners when variables and bound variables are created * consistent and clean NodeManagerScope handling (out of scope for this PR) * clean up all interfaces to use const references when possible
Diffstat (limited to 'src/expr/node_manager.h')
-rw-r--r--src/expr/node_manager.h17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/expr/node_manager.h b/src/expr/node_manager.h
index 076b6d164..319ab4461 100644
--- a/src/expr/node_manager.h
+++ b/src/expr/node_manager.h
@@ -40,6 +40,10 @@
namespace CVC4 {
+namespace api {
+class Solver;
+}
+
class StatisticsRegistry;
class ResourceManager;
class SkolemManager;
@@ -82,16 +86,19 @@ class NodeManagerListener {
virtual void nmNotifyDeleteNode(TNode n) {}
}; /* class NodeManagerListener */
-class NodeManager {
- template <unsigned nchild_thresh> friend class CVC4::NodeBuilder;
- friend class NodeManagerScope;
+class NodeManager
+{
+ friend class api::Solver;
friend class expr::NodeValue;
friend class expr::TypeChecker;
-
// friends so they can access mkVar() here, which is private
friend Expr ExprManager::mkVar(const std::string&, Type);
friend Expr ExprManager::mkVar(Type);
+ template <unsigned nchild_thresh>
+ friend class NodeBuilder;
+ friend class NodeManagerScope;
+
/** Predicate for use with STL algorithms */
struct NodeValueReferenceCountNonZero {
bool operator()(expr::NodeValue* nv) { return nv->d_rc > 0; }
@@ -1147,7 +1154,7 @@ class NodeManager {
* any published code!
*/
void debugHook(int debugFlag);
-};/* class NodeManager */
+}; /* class NodeManager */
/**
* This class changes the "current" thread-global
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback