summaryrefslogtreecommitdiff
path: root/src/core/parser/ParserScope.hpp
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-12 10:38:16 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-02-12 10:38:16 +0100
commitdbf2eebdd88118dca79045ad0524061f8078e668 (patch)
treec06719655432e59b27b92ce950e131cceb3d6386 /src/core/parser/ParserScope.hpp
parent339683e64288a85b8d6f9355a10563417b7d2fa7 (diff)
refactored FieldDescriptor resolution into own function in ParserScope for more cleanliness and less overhead.
Diffstat (limited to 'src/core/parser/ParserScope.hpp')
-rw-r--r--src/core/parser/ParserScope.hpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/core/parser/ParserScope.hpp b/src/core/parser/ParserScope.hpp
index bd6a29f..58fc037 100644
--- a/src/core/parser/ParserScope.hpp
+++ b/src/core/parser/ParserScope.hpp
@@ -679,7 +679,6 @@ public:
* Resolves a typesystem type. Makes sure an array type is returned if an
* array type is requested.
*
- * @tparam T is the type of the node that should be resolved.
* @param name is the path for which a node should be resolved. The name is
* split at '.' to form a path.
* @param owner is the node for which the resolution takes place.
@@ -715,7 +714,6 @@ public:
* Resolves a type and makes sure the corresponding value is of the correct
* type.
*
- * @tparam T is the type of the node that should be resolved.
* @param path is the path for which a node should be resolved.
* @param owner is the node for which the resolution takes place.
* @param value is a reference at the Variant that represents the value for
@@ -739,7 +737,6 @@ public:
* Resolves a type and makes sure the corresponding value is of the correct
* type.
*
- * @tparam T is the type of the node that should be resolved.
* @param name is the path for which a node should be resolved. The name is
* split at '.' to form a path.
* @param owner is the node for which the resolution takes place.
@@ -760,6 +757,44 @@ public:
ResolutionResultCallback resultCallback);
/**
+ * Resolves a FieldDescriptor. Makes sure that the default field can be
+ * handled.
+ *
+ * @param path is the path for which a node should be resolved.
+ * @param owner is the node for which the resolution takes place.
+ * @param logger is the logger instance into which resolution problems
+ * should be logged.
+ * @param resultCallback is the callback function to which the result of
+ * the resolution process is passed. This function is called once the
+ * resolution was successful.
+ * @return true if the resolution was immediately successful. This does not
+ * mean, that the resolved object does not exist, as it may be resolved
+ * later.
+ */
+ bool resolveFieldDescriptor(const std::vector<std::string> &path,
+ Handle<Node> owner, Logger &logger,
+ ResolutionResultCallback resultCallback);
+
+ /**
+ * Resolves a FieldDescriptor. Makes sure that the default field can be
+ * handled.
+ *
+ * @param name is the path for which a node should be resolved. The name is
+ * split at '.' to form a path.
+ * @param owner is the node for which the resolution takes place.
+ * @param logger is the logger instance into which resolution problems
+ * should be logged.
+ * @param resultCallback is the callback function to which the result of
+ * the resolution process is passed. This function is called once the
+ * resolution was successful.
+ * @return true if the resolution was immediately successful. This does not
+ * mean, that the resolved object does not exist, as it may be resolved
+ * later.
+ */
+ bool resolveFieldDescriptor(const std::string &name, Handle<Node> owner,
+ Logger &logger,
+ ResolutionResultCallback resultCallback);
+ /**
* Tries to resolve all currently deferred resolution steps. The list of
* pending deferred resolutions is cleared after this function has run.
*