diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2014-11-21 12:27:34 +0100 |
---|---|---|
committer | Andreas Stöckel <andreas@somweyr.de> | 2014-11-21 12:27:34 +0100 |
commit | 1da7b31f13b00fdf4e572b5847750237f484b505 (patch) | |
tree | b9778684924c0e1fe082cd773ff7830dc63560f1 | |
parent | d777bca65566bf15e9e2ed8b23f854fb974c902a (diff) |
resolve now resolves lists of generic Managed objects and not nodes (this is needed as e.g. constants need to be resolved, which are TypeInstances but not Nodes)
-rw-r--r-- | src/core/Node.cpp | 8 | ||||
-rw-r--r-- | src/core/Node.hpp | 14 | ||||
-rw-r--r-- | test/core/NodeTest.cpp | 4 |
3 files changed, 13 insertions, 13 deletions
diff --git a/src/core/Node.cpp b/src/core/Node.cpp index c18adb4..607c607 100644 --- a/src/core/Node.cpp +++ b/src/core/Node.cpp @@ -47,14 +47,14 @@ std::vector<std::string> Node::path() const return res; } -void Node::doResolve(std::vector<Rooted<Node>> &res, +void Node::doResolve(std::vector<Rooted<Managed>> &res, const std::vector<std::string> &path, Filter filter, void *filterData, unsigned idx, VisitorSet &visited) { // Do nothing in the default implementation } -int Node::resolve(std::vector<Rooted<Node>> &res, +int Node::resolve(std::vector<Rooted<Managed>> &res, const std::vector<std::string> &path, Filter filter, void *filterData, unsigned idx, VisitorSet &visited, const std::string *alias) @@ -87,11 +87,11 @@ int Node::resolve(std::vector<Rooted<Node>> &res, return res.size(); } -std::vector<Rooted<Node>> Node::resolve(const std::vector<std::string> &path, +std::vector<Rooted<Managed>> Node::resolve(const std::vector<std::string> &path, Filter filter = nullptr, void *filterData = nullptr) { - std::vector<Rooted<Node>> res; + std::vector<Rooted<Managed>> res; VisitorSet visited; resolve(res, path, filter, filterData, 0, visited, nullptr); return res; diff --git a/src/core/Node.hpp b/src/core/Node.hpp index 262a611..f32beb7 100644 --- a/src/core/Node.hpp +++ b/src/core/Node.hpp @@ -307,7 +307,7 @@ protected: * @param filterData is user-defined data that should be passed to the * filter. */ - virtual void doResolve(std::vector<Rooted<Node>> &res, + virtual void doResolve(std::vector<Rooted<Managed>> &res, const std::vector<std::string> &path, Filter filter, void *filterData, unsigned idx, VisitorSet &visited); @@ -370,7 +370,7 @@ public: * * @return a handle to the root node. */ - Rooted<Node> getParent() const { return parent; } + Rooted<Managed> getParent() const { return parent; } /** * Returns true, if the node does not have a parent. Root nodes may either @@ -410,7 +410,7 @@ public: * provided. * @return the number of elements in the result list. */ - int resolve(std::vector<Rooted<Node>> &res, + int resolve(std::vector<Rooted<Managed>> &res, const std::vector<std::string> &path, Filter filter, void *filterData, unsigned idx, VisitorSet &visited, const std::string *alias); @@ -429,7 +429,7 @@ public: * filter. * @return a vector containing all found node references. */ - std::vector<Rooted<Node>> resolve(const std::vector<std::string> &path, + std::vector<Rooted<Managed>> resolve(const std::vector<std::string> &path, Filter filter, void *filterData); /** @@ -440,7 +440,7 @@ public: * certain named node. * @return a vector containing all found node references. */ - std::vector<Rooted<Node>> resolve(const std::vector<std::string> &path) + std::vector<Rooted<Managed>> resolve(const std::vector<std::string> &path) { return resolve(path, nullptr, nullptr); } @@ -458,7 +458,7 @@ public: * filter. * @return a vector containing all found node references. */ - std::vector<Rooted<Node>> resolve(const char *, Filter filter, + std::vector<Rooted<Managed>> resolve(const char *, Filter filter, void *filterData) { return resolve(std::vector<std::string>{name}, filter, filterData); @@ -471,7 +471,7 @@ public: * @param name is the name which should be resolved. * @return a vector containing all found node references. */ - std::vector<Rooted<Node>> resolve(const std::string &name) + std::vector<Rooted<Managed>> resolve(const std::string &name) { return resolve(std::vector<std::string>{name}, nullptr, nullptr); } diff --git a/test/core/NodeTest.cpp b/test/core/NodeTest.cpp index 9537d29..182dfdd 100644 --- a/test/core/NodeTest.cpp +++ b/test/core/NodeTest.cpp @@ -30,7 +30,7 @@ private: std::vector<Owned<Node>> children; protected: - void doResolve(std::vector<Rooted<Node>> &res, + void doResolve(std::vector<Rooted<Managed>> &res, const std::vector<std::string> &path, Filter filter, void *filterData, unsigned idx, VisitorSet &visited) override { @@ -73,7 +73,7 @@ TEST(Node, simpleResolve) Rooted<TestNode> child1 = root->addChild(new TestNode(mgr, "child1")); Rooted<TestNode> child11 = child1->addChild(new TestNode(mgr, "child11")); - std::vector<Rooted<Node>> res; + std::vector<Rooted<Managed>> res; res = root->resolve(std::vector<std::string>{"root", "child1", "child11"}); ASSERT_EQ(1, res.size()); ASSERT_TRUE(child11 == *(res.begin())); |