⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cls_value.hpp

📁 orange源码 数据挖掘技术
💻 HPP
字号:
/*
    This file is part of Orange.

    Orange is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    Orange is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with Orange; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

    Authors: Janez Demsar, Blaz Zupan, 1996--2002
    Contact: janez.demsar@fri.uni-lj.si
*/


#ifndef __CLS_VALUE_HPP
#define __CLS_VALUE_HPP

#include "c2py.hpp"
#include "orange.hpp"

#include "values.hpp"
#include "vars.hpp"

extern ORANGE_API TOrangeType PyOrValue_Type;

class ORANGE_API TPyValue {
public:
  PyObject_HEAD
  TValue value;
  PVariable variable;
};

PyObject *Value_FromVariableValueType(PyTypeObject *type, PVariable var, const TValue &val);
#define Value_FromVariableValue(variable, value)  Value_FromVariableValueType((PyTypeObject *)&PyOrValue_Type, variable, value)
#define Value_FromValueType(type, value)          Value_FromVariableValueType(type, PVariable(), value)
#define Value_FromValue(value)                    Value_FromVariableValue(PVariable(), value)

inline PyObject *Value_FromVariable(PVariable variable)
{ return Value_FromVariableValue(variable, variable->DK()); }

inline PyObject *Value_FromVariableType(PyTypeObject *type, PVariable variable)
{ return Value_FromVariableValueType(type, variable, variable->DK()); }


PyObject *Value_FromArguments(PyTypeObject *type, PyObject *args);


#define PyValue_AS_Value(op) (((TPyValue *)(op))->value)
#define PyValue_AS_Variable(op) (((TPyValue *)(op))->variable)


PyObject *convertToPythonNative(const TValue &val);
PyObject *convertToPythonNative(const TValue &val, PVariable var);
PyObject *convertToPythonNative(const TPyValue *value);

bool convertFromPython(PyObject *args, TValue &value, PVariable var);
bool convertFromPython(PyObject *args, TPyValue *&value);

inline bool convertFromPython(PyObject *args, TValue &value)
{ return convertFromPython(args, value, PVariable()); }

class TCharBuffer;

bool Value_pack(const TValue &value, TCharBuffer &buf, PyObject *&otherValues);
bool Value_unpack(TValue &value, TCharBuffer &buf, PyObject *otherValues, int &otherValuesIndex);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -