diff options
author | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-25 21:58:34 +0100 |
---|---|---|
committer | Andreas Stöckel <astoecke@techfak.uni-bielefeld.de> | 2015-01-25 21:58:34 +0100 |
commit | 4373ba6a600785db93b97afb5daa53dc14a17d19 (patch) | |
tree | aa3694106889bcefc36833390b93f2a782d0e7bb /src/core/model/Project.hpp | |
parent | 15d1cfd2c5198be8e0105da269de3091568a7c6c (diff) |
added parse, link and include functions to Project
Diffstat (limited to 'src/core/model/Project.hpp')
-rw-r--r-- | src/core/model/Project.hpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/core/model/Project.hpp b/src/core/model/Project.hpp index 2c50f49..4743454 100644 --- a/src/core/model/Project.hpp +++ b/src/core/model/Project.hpp @@ -91,6 +91,78 @@ public: Project(Manager &mgr, Registry ®istry); /** + * Parses a file with the given Logger in an empty ParserScope. This + * function is meant to be called by the top-level (e.g. a main function) + * and not by other parsers. These should use the link and include methods + * instead. + * + * @param path is the path of the file that should be parsed. + * @param mimetype is the mimetype of the resource that should be parsed + * (may be empty, in which case the mimetype is deduced from the file + * extension). + * @param rel is a "relation string" supplied by the user which specifies + * the relationship of the specified resource. May be empty, in which case + * the relation is deduced from the supported types and the types of the + * parser for the given mimetype. + * @param supportedTypes contains the types of the returned Node the caller + * can deal with. Note that only the types the parser claims to return are + * checked, not the actual result. + * @param logger is the logger that should be used + * @return the parsed node or nullptr if something goes wrong. + */ + Rooted<Node> parse(const std::string &path, const std::string mimetype, + const std::string rel, RttiSet &supportedTypes, + Logger &logger); + + /** + * Parses a file with ParserContext and an empty ParserScope. The parsed + * object graph of files that are parsed using the "link" function is + * cached (in contrast to the "include" function). + * + * @param ctx is the ParserContext that should be passed to the underlying + * parser. The scope in the ParserContext will be exchanged. + * @param path is the path of the file that should be parsed. + * @param mimetype is the mimetype of the resource that should be parsed + * (may be empty, in which case the mimetype is deduced from the file + * extension). + * @param rel is a "relation string" supplied by the user which specifies + * the relationship of the specified resource. May be empty, in which case + * the relation is deduced from the supported types and the types of the + * parser for the given mimetype. + * @param supportedTypes contains the types of the returned Node the caller + * can deal with. Note that only the types the parser claims to return are + * checked, not the actual result. + * @return the parsed node or nullptr if something goes wrong. + */ + Rooted<Node> link(ParserContext &ctx, const std::string &path, + const std::string mimetype, const std::string rel, + RttiSet &supportedTypes); + + /** + * Parses a file with ParserContext and the current ParserScope. In contrast + * to the "link" function, include() does not cache the parsed node (as it + * depends on the current ParserScope). + * + * @param ctx is the ParserContext that should be passed to the underlying + * parser. The scope in the ParserContext will be exchanged. + * @param path is the path of the file that should be parsed. + * @param mimetype is the mimetype of the resource that should be parsed + * (may be empty, in which case the mimetype is deduced from the file + * extension). + * @param rel is a "relation string" supplied by the user which specifies + * the relationship of the specified resource. May be empty, in which case + * the relation is deduced from the supported types and the types of the + * parser for the given mimetype. + * @param supportedTypes contains the types of the returned Node the caller + * can deal with. Note that only the types the parser claims to return are + * checked, not the actual result. + * @return the parsed node or nullptr if something goes wrong. + */ + Rooted<Node> include(ParserContext &ctx, const std::string &path, + const std::string mimetype, const std::string rel, + RttiSet &supportedTypes); + + /** * Returns a reference to the internal system typesystem. * * @return a reference to the system typesystem. |