All Classes Namespaces Functions Typedefs Enumerations
pyeval.h
1 #ifndef _MBXMLUTILS_PYEVAL_H_
2 #define _MBXMLUTILS_PYEVAL_H_
3 
4 #include "eval.h"
5 #include "py2py3cppwrapper.h"
6 
7 namespace MBXMLUtils {
8 
10 class PyEval : public Eval {
11  friend class Eval;
12 
13  protected:
15  PyEval(std::vector<boost::filesystem::path> *dependencies_=NULL);
16  public:
18  ~PyEval();
19  static std::string getNameStatic() { return "python"; }
20  virtual std::string getName() const { return getNameStatic(); }
21  virtual void addImport(const std::string &code, const xercesc::DOMElement *e, bool deprecated=false);
22  virtual bool valueIsOfType(const boost::shared_ptr<void> &value, ValueType type) const;
23  virtual std::map<boost::filesystem::path, std::pair<boost::filesystem::path, bool> >& requiredFiles() const;
24  virtual bool useOneBasedIndexes() { return false; }
25  protected:
26  virtual boost::shared_ptr<void> createSwigByTypeName(const std::string &typeName) const;
27  virtual boost::shared_ptr<void> callFunction(const std::string &name, const std::vector<boost::shared_ptr<void> >& args) const;
28  virtual boost::shared_ptr<void> fullStringToValue(const std::string &str, const xercesc::DOMElement *e=NULL) const;
29  virtual void* getSwigThis(const boost::shared_ptr<void> &value) const;
30  virtual std::string getSwigType(const boost::shared_ptr<void> &value) const;
31  private:
32  virtual double cast_double (const boost::shared_ptr<void> &value) const;
33  virtual std::vector<double> cast_vector_double (const boost::shared_ptr<void> &value) const;
34  virtual std::vector<std::vector<double> >cast_vector_vector_double (const boost::shared_ptr<void> &value) const;
35  virtual std::string cast_string (const boost::shared_ptr<void> &value) const;
36  virtual boost::shared_ptr<void> create_double (const double& v) const;
37  virtual boost::shared_ptr<void> create_vector_double (const std::vector<double>& v) const;
38  virtual boost::shared_ptr<void> create_vector_vector_double(const std::vector<std::vector<double> >& v) const;
39  virtual boost::shared_ptr<void> create_string (const std::string& v) const;
40 
41  static bool initialized;
42  static PythonCpp::PyO mbxmlutils;
43  static PythonCpp::PyO numpy;
44 };
45 
46 }
47 
48 #endif
Definition: eval.h:77
virtual void * getSwigThis(const boost::shared_ptr< void > &value) const
get the SWIG pointer of this value.
Definition: pyeval.cc:393
PyEval(std::vector< boost::filesystem::path > *dependencies_=NULL)
Constructor.
Definition: pyeval.cc:48
virtual std::string getSwigType(const boost::shared_ptr< void > &value) const
get the SWIG type (class name) of this value.
Definition: pyeval.cc:227
A evaluator based on python.
Definition: pyeval.h:10
virtual boost::shared_ptr< void > fullStringToValue(const std::string &str, const xercesc::DOMElement *e=NULL) const
evaluate the string str using the current parameters and return the result.
Definition: pyeval.cc:136
virtual bool valueIsOfType(const boost::shared_ptr< void > &value, ValueType type) const
Definition: pyeval.cc:101
virtual bool useOneBasedIndexes()
Return true if the evaluator used one based indexes or false if zero based indexes are used...
Definition: pyeval.h:24
~PyEval()
Destructor.
Definition: pyeval.cc:70
virtual std::string getName() const
Get the type of this evaluator.
Definition: pyeval.h:20
virtual std::map< boost::filesystem::path, std::pair< boost::filesystem::path, bool > > & requiredFiles() const
return a list of all required files of the evaluator (excluding dependent files of libraries) ...
Definition: pyeval.cc:113
virtual boost::shared_ptr< void > createSwigByTypeName(const std::string &typeName) const
create a SWIG object of name typeName.
Definition: pyeval.cc:118
virtual void addImport(const std::string &code, const xercesc::DOMElement *e, bool deprecated=false)
Definition: pyeval.cc:74
virtual boost::shared_ptr< void > callFunction(const std::string &name, const std::vector< boost::shared_ptr< void > > &args) const
Definition: pyeval.cc:122
ValueType
Definition: eval.h:83

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML