itom 1.0.14
|
00001 /* ******************************************************************** 00002 itom software 00003 URL: http://www.uni-stuttgart.de/ito 00004 Copyright (C) 2013, Institut für Technische Optik (ITO), 00005 Universität Stuttgart, Germany 00006 00007 This file is part of itom. 00008 00009 itom is free software; you can redistribute it and/or modify it 00010 under the terms of the GNU Library General Public Licence as published by 00011 the Free Software Foundation; either version 2 of the Licence, or (at 00012 your option) any later version. 00013 00014 itom is distributed in the hope that it will be useful, but 00015 WITHOUT ANY WARRANTY; without even the implied warranty of 00016 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library 00017 General Public Licence for more details. 00018 00019 You should have received a copy of the GNU Library General Public License 00020 along with itom. If not, see <http://www.gnu.org/licenses/>. 00021 *********************************************************************** */ 00022 00023 #ifndef PYTHONCOMMON_H 00024 #define PYTHONCOMMON_H 00025 00026 //python 00028 //#ifdef _DEBUG 00029 // #undef _DEBUG 00030 // #ifdef linux 00031 // #include "Python.h" 00032 // #else 00033 // #include "include\Python.h" 00034 // #endif 00035 // #define _DEBUG 00036 //#else 00037 // #ifdef linux 00038 // #include "Python.h" 00039 // #else 00040 // #include "include\Python.h" 00041 // #endif 00042 //#endif 00043 00044 #include "pythonPlugins.h" 00045 #include "pythonDataObject.h" 00046 #include "pythonPCL.h" 00047 00048 #include "../common/sharedStructures.h" 00049 00050 #include <qvector.h> 00051 #include <qvariant.h> 00052 00053 namespace ito 00054 { 00055 00056 ito::RetVal checkAndSetParamVal(PyObject *tempObj, ito::Param *param, int *set); 00057 ito::RetVal checkAndSetParamVal(PyObject *pyObj, const ito::Param *defaultParam, ito::ParamBase &outParam, int *set); 00059 PyObject* PrntOutParams(const QVector<ito::Param> *params, bool asErr, bool addInfos, const int num); 00060 void errOutInitParams(const QVector<ito::Param> *params, const int num, const QString reason); 00061 ito::RetVal parseInitParams(QVector<ito::Param> *initParamListMand, QVector<ito::Param> *initParamListOpt, PyObject *args, PyObject *kwds); 00062 ito::RetVal parseInitParams(const QVector<ito::Param> *defaultParamListMand, const QVector<ito::Param> *defaultParamListOpt, PyObject *args, PyObject *kwds, QVector<ito::ParamBase> ¶mListMandOut, QVector<ito::ParamBase> ¶mListOptOut); 00063 ito::RetVal copyParamVector(const QVector<ito::ParamBase> *paramVecIn, QVector<ito::ParamBase> ¶mVecOut); 00064 ito::RetVal copyParamVector(const QVector<ito::Param> *paramVecIn, QVector<ito::Param> ¶mVecOut); 00065 ito::RetVal copyParamVector(const QVector<ito::Param> *paramVecIn, QVector<ito::ParamBase> ¶mVecOut); 00066 ito::RetVal createEmptyParamBaseFromParamVector(const QVector<ito::Param> *paramVecIn, QVector<ito::ParamBase> ¶mVecOut); 00067 00069 ito::RetVal findAndDeleteReservedInitKeyWords(PyObject *kwds, bool * enableAutoLoadParams); 00070 00071 //PyObject* transformQVariant2PyObject(QVariant *value, ito::RetVal &retValue); 00072 PyObject* buildFilterOutputValues(QVector<QVariant> *outVals, ito::RetVal &retValue); 00073 00074 class PythonCommon 00075 { 00076 public: 00077 static bool transformRetValToPyException(ito::RetVal &retVal, PyObject *exceptionIfError = PyExc_RuntimeError); 00078 }; 00079 00080 } //end namespace ito 00081 00082 #endif