All Classes Namespaces Functions Variables Typedefs Enumerations
preprocess.h
1 #ifndef _MBXMLUTILS_PREPROCESS_H_
2 #define _MBXMLUTILS_PREPROCESS_H_
3 
4 #include <fmatvec/atom.h>
5 #include <mbxmlutilshelper/dom.h>
6 #include <mbxmlutils/eval.h>
7 
8 namespace MBXMLUtils {
9 
10 
11 class Preprocess : virtual public fmatvec::Atom {
12  protected:
13  typedef std::map<FQN, int> PositionMap;
14  public:
15  typedef std::vector<std::pair<std::string, Eval::Value> > ParamSet;
16  typedef std::unordered_map<std::string, ParamSet> XPathParamSet;
17  static void preprocess(std::shared_ptr<MBXMLUtils::DOMParser> parser, // in: parser used to parse XML documents
18  const std::shared_ptr<Eval> &eval, // in: evaluator used for evaluation
19  std::vector<boost::filesystem::path> &dependencies, // out: list of dependent files
20  xercesc::DOMElement *&e, // in: element to process; out: e changes only if e is itself a Embed element
21  // out: XPath map of top level parameter sets. Note: the XPath position is always interpreted
22  // with a Embed count of 1!
23  std::shared_ptr<XPathParamSet> param=std::shared_ptr<XPathParamSet>(),
24 
25  // internal: XPath expression of parent element
26  const std::string &parentXPath="",
27  // internal: XPath position count of the element e
28  std::shared_ptr<PositionMap> position=std::make_shared<PositionMap>()
29  );
30 };
31 
32 }
33 
34 #endif
Definition: preprocess.h:11

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML