00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_PYTHON_PYINTERPRETER_H
00008 #define BALL_PYTHON_PYINTERPRETER_H
00009
00010 #ifndef BALL_COMMON_H
00011 # include <BALL/common.h>
00012 #endif
00013
00014 #ifndef BALL_DATAYPE_STRING_H
00015 # include <BALL/DATATYPE/string.h>
00016 #endif
00017
00018 #ifndef BALL_SYSTEM_PATH_H
00019 # include <BALL/SYSTEM/path.h>
00020 #endif
00021
00022 #include <vector>
00023
00024 namespace BALL
00025 {
00032 class BALL_EXPORT PyInterpreter
00033 {
00034 private:
00035
00036 PyInterpreter();
00037 ~PyInterpreter() {}
00038
00039 public:
00042
00043 typedef std::vector<String> PathStrings;
00045
00048
00057 static void initialize();
00058
00063 static void finalize();
00064
00068 static bool isInitialized();
00069
00071 static void setSysPath(const PathStrings& path_strings);
00072
00074 static const PathStrings& getSysPath();
00075
00077 static bool isValid() { return valid_;}
00078
00080 static String getStartupLog() { return start_log_;}
00081
00083
00084
00092 static String run(const String& s, bool& result);
00093
00097 static String runFile(const String& filename)
00098 throw(Exception::FileNotFound);
00099
00106 static bool importModule(const String& module_name);
00108 protected:
00109 static PathStrings sys_path_;
00110 static bool valid_;
00111 static String start_log_;
00112 };
00113
00114 }
00115
00116 #endif // BALL_PYTHON_PYINTERPRETER_H