Commited SF#2158938: change all SWIG symbols start with Py to a new name.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@10961 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
1c4ec59e45
commit
8f84447860
23 changed files with 666 additions and 424 deletions
|
|
@ -36,15 +36,15 @@
|
|||
|
||||
%include <std_except.i>
|
||||
|
||||
%fragment(SWIG_Traits_frag(swig::PyObject_ptr),"header",fragment="StdTraits") {
|
||||
%fragment(SWIG_Traits_frag(swig::SwigPtr_PyObject),"header",fragment="StdTraits") {
|
||||
namespace swig {
|
||||
template <> struct traits<PyObject_ptr > {
|
||||
template <> struct traits<SwigPtr_PyObject > {
|
||||
typedef value_category category;
|
||||
static const char* type_name() { return "PyObject_ptr"; }
|
||||
static const char* type_name() { return "SwigPtr_PyObject"; }
|
||||
};
|
||||
|
||||
template <> struct traits_from<PyObject_ptr> {
|
||||
typedef PyObject_ptr value_type;
|
||||
template <> struct traits_from<SwigPtr_PyObject> {
|
||||
typedef SwigPtr_PyObject value_type;
|
||||
static PyObject *from(const value_type& val) {
|
||||
PyObject *obj = static_cast<PyObject *>(val);
|
||||
Py_XINCREF(obj);
|
||||
|
|
@ -53,14 +53,14 @@ namespace swig {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct traits_check<PyObject_ptr, value_category> {
|
||||
static bool check(PyObject_ptr) {
|
||||
struct traits_check<SwigPtr_PyObject, value_category> {
|
||||
static bool check(SwigPtr_PyObject) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
template <> struct traits_asval<PyObject_ptr > {
|
||||
typedef PyObject_ptr value_type;
|
||||
template <> struct traits_asval<SwigPtr_PyObject > {
|
||||
typedef SwigPtr_PyObject value_type;
|
||||
static int asval(PyObject *obj, value_type *val) {
|
||||
if (val) *val = obj;
|
||||
return SWIG_OK;
|
||||
|
|
@ -69,15 +69,15 @@ namespace swig {
|
|||
}
|
||||
}
|
||||
|
||||
%fragment(SWIG_Traits_frag(swig::PyObject_var),"header",fragment="StdTraits") {
|
||||
%fragment(SWIG_Traits_frag(swig::SwigVar_PyObject),"header",fragment="StdTraits") {
|
||||
namespace swig {
|
||||
template <> struct traits<PyObject_var > {
|
||||
template <> struct traits<SwigVar_PyObject > {
|
||||
typedef value_category category;
|
||||
static const char* type_name() { return "PyObject_var"; }
|
||||
static const char* type_name() { return "SwigVar_PyObject"; }
|
||||
};
|
||||
|
||||
template <> struct traits_from<PyObject_var> {
|
||||
typedef PyObject_var value_type;
|
||||
template <> struct traits_from<SwigVar_PyObject> {
|
||||
typedef SwigVar_PyObject value_type;
|
||||
static PyObject *from(const value_type& val) {
|
||||
PyObject *obj = static_cast<PyObject *>(val);
|
||||
Py_XINCREF(obj);
|
||||
|
|
@ -86,14 +86,14 @@ namespace swig {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct traits_check<PyObject_var, value_category> {
|
||||
static bool check(PyObject_var) {
|
||||
struct traits_check<SwigVar_PyObject, value_category> {
|
||||
static bool check(SwigVar_PyObject) {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
template <> struct traits_asval<PyObject_var > {
|
||||
typedef PyObject_var value_type;
|
||||
template <> struct traits_asval<SwigVar_PyObject > {
|
||||
typedef SwigVar_PyObject value_type;
|
||||
static int asval(PyObject *obj, value_type *val) {
|
||||
if (val) *val = obj;
|
||||
return SWIG_OK;
|
||||
|
|
@ -102,7 +102,7 @@ namespace swig {
|
|||
}
|
||||
}
|
||||
|
||||
%fragment("PySequence_Base","header")
|
||||
%fragment("SwigPySequence_Base","header")
|
||||
{
|
||||
%#include <functional>
|
||||
|
||||
|
|
@ -133,20 +133,20 @@ namespace std {
|
|||
};
|
||||
|
||||
template <>
|
||||
struct less <swig::PyObject_ptr>: public binary_function<swig::PyObject_ptr, swig::PyObject_ptr, bool>
|
||||
struct less <swig::SwigPtr_PyObject>: public binary_function<swig::SwigPtr_PyObject, swig::SwigPtr_PyObject, bool>
|
||||
{
|
||||
bool
|
||||
operator()(const swig::PyObject_ptr& v, const swig::PyObject_ptr& w) const
|
||||
operator()(const swig::SwigPtr_PyObject& v, const swig::SwigPtr_PyObject& w) const
|
||||
{
|
||||
return std::less<PyObject *>()(v, w);
|
||||
}
|
||||
};
|
||||
|
||||
template <>
|
||||
struct less <swig::PyObject_var>: public binary_function<swig::PyObject_var, swig::PyObject_var, bool>
|
||||
struct less <swig::SwigVar_PyObject>: public binary_function<swig::SwigVar_PyObject, swig::SwigVar_PyObject, bool>
|
||||
{
|
||||
bool
|
||||
operator()(const swig::PyObject_var& v, const swig::PyObject_var& w) const
|
||||
operator()(const swig::SwigVar_PyObject& v, const swig::SwigVar_PyObject& w) const
|
||||
{
|
||||
return std::less<PyObject *>()(v, w);
|
||||
}
|
||||
|
|
@ -288,24 +288,24 @@ namespace swig {
|
|||
}
|
||||
}
|
||||
|
||||
%fragment("PySequence_Cont","header",
|
||||
%fragment("SwigPySequence_Cont","header",
|
||||
fragment="StdTraits",
|
||||
fragment="PySequence_Base",
|
||||
fragment="PySwigIterator_T")
|
||||
fragment="SwigPySequence_Base",
|
||||
fragment="SwigPyIterator_T")
|
||||
{
|
||||
namespace swig
|
||||
{
|
||||
template <class T>
|
||||
struct PySequence_Ref
|
||||
struct SwigPySequence_Ref
|
||||
{
|
||||
PySequence_Ref(PyObject* seq, int index)
|
||||
SwigPySequence_Ref(PyObject* seq, int index)
|
||||
: _seq(seq), _index(index)
|
||||
{
|
||||
}
|
||||
|
||||
operator T () const
|
||||
{
|
||||
swig::PyObject_var item = PySequence_GetItem(_seq, _index);
|
||||
swig::SwigVar_PyObject item = PySequence_GetItem(_seq, _index);
|
||||
try {
|
||||
return swig::as<T>(item, true);
|
||||
} catch (std::exception& e) {
|
||||
|
|
@ -320,7 +320,7 @@ namespace swig
|
|||
}
|
||||
}
|
||||
|
||||
PySequence_Ref& operator=(const T& v)
|
||||
SwigPySequence_Ref& operator=(const T& v)
|
||||
{
|
||||
PySequence_SetItem(_seq, _index, swig::from<T>(v));
|
||||
return *this;
|
||||
|
|
@ -332,18 +332,18 @@ namespace swig
|
|||
};
|
||||
|
||||
template <class T>
|
||||
struct PySequence_ArrowProxy
|
||||
struct SwigPySequence_ArrowProxy
|
||||
{
|
||||
PySequence_ArrowProxy(const T& x): m_value(x) {}
|
||||
SwigPySequence_ArrowProxy(const T& x): m_value(x) {}
|
||||
const T* operator->() const { return &m_value; }
|
||||
operator const T*() const { return &m_value; }
|
||||
T m_value;
|
||||
};
|
||||
|
||||
template <class T, class Reference >
|
||||
struct PySequence_InputIterator
|
||||
struct SwigPySequence_InputIterator
|
||||
{
|
||||
typedef PySequence_InputIterator<T, Reference > self;
|
||||
typedef SwigPySequence_InputIterator<T, Reference > self;
|
||||
|
||||
typedef std::random_access_iterator_tag iterator_category;
|
||||
typedef Reference reference;
|
||||
|
|
@ -351,11 +351,11 @@ namespace swig
|
|||
typedef T* pointer;
|
||||
typedef int difference_type;
|
||||
|
||||
PySequence_InputIterator()
|
||||
SwigPySequence_InputIterator()
|
||||
{
|
||||
}
|
||||
|
||||
PySequence_InputIterator(PyObject* seq, int index)
|
||||
SwigPySequence_InputIterator(PyObject* seq, int index)
|
||||
: _seq(seq), _index(index)
|
||||
{
|
||||
}
|
||||
|
|
@ -365,9 +365,9 @@ namespace swig
|
|||
return reference(_seq, _index);
|
||||
}
|
||||
|
||||
PySequence_ArrowProxy<T>
|
||||
SwigPySequence_ArrowProxy<T>
|
||||
operator->() const {
|
||||
return PySequence_ArrowProxy<T>(operator*());
|
||||
return SwigPySequence_ArrowProxy<T>(operator*());
|
||||
}
|
||||
|
||||
bool operator==(const self& ri) const
|
||||
|
|
@ -436,19 +436,19 @@ namespace swig
|
|||
};
|
||||
|
||||
template <class T>
|
||||
struct PySequence_Cont
|
||||
struct SwigPySequence_Cont
|
||||
{
|
||||
typedef PySequence_Ref<T> reference;
|
||||
typedef const PySequence_Ref<T> const_reference;
|
||||
typedef SwigPySequence_Ref<T> reference;
|
||||
typedef const SwigPySequence_Ref<T> const_reference;
|
||||
typedef T value_type;
|
||||
typedef T* pointer;
|
||||
typedef int difference_type;
|
||||
typedef int size_type;
|
||||
typedef const pointer const_pointer;
|
||||
typedef PySequence_InputIterator<T, reference> iterator;
|
||||
typedef PySequence_InputIterator<T, const_reference> const_iterator;
|
||||
typedef SwigPySequence_InputIterator<T, reference> iterator;
|
||||
typedef SwigPySequence_InputIterator<T, const_reference> const_iterator;
|
||||
|
||||
PySequence_Cont(PyObject* seq) : _seq(0)
|
||||
SwigPySequence_Cont(PyObject* seq) : _seq(0)
|
||||
{
|
||||
if (!PySequence_Check(seq)) {
|
||||
throw std::invalid_argument("a sequence is expected");
|
||||
|
|
@ -457,7 +457,7 @@ namespace swig
|
|||
Py_INCREF(_seq);
|
||||
}
|
||||
|
||||
~PySequence_Cont()
|
||||
~SwigPySequence_Cont()
|
||||
{
|
||||
Py_XDECREF(_seq);
|
||||
}
|
||||
|
|
@ -506,7 +506,7 @@ namespace swig
|
|||
{
|
||||
int s = size();
|
||||
for (int i = 0; i < s; ++i) {
|
||||
swig::PyObject_var item = PySequence_GetItem(_seq, i);
|
||||
swig::SwigVar_PyObject item = PySequence_GetItem(_seq, i);
|
||||
if (!swig::check<value_type>(item)) {
|
||||
if (set_err) {
|
||||
char msg[1024];
|
||||
|
|
@ -533,40 +533,40 @@ namespace swig
|
|||
class const_iterator;
|
||||
class const_reverse_iterator;
|
||||
|
||||
%typemap(out,noblock=1,fragment="PySequence_Cont")
|
||||
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
||||
iterator, reverse_iterator, const_iterator, const_reverse_iterator {
|
||||
$result = SWIG_NewPointerObj(swig::make_output_iterator(%static_cast($1,const $type &)),
|
||||
swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN);
|
||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN);
|
||||
}
|
||||
%typemap(out,noblock=1,fragment="PySequence_Cont")
|
||||
%typemap(out,noblock=1,fragment="SwigPySequence_Cont")
|
||||
std::pair<iterator, iterator>, std::pair<const_iterator, const_iterator> {
|
||||
$result = PyTuple_New(2);
|
||||
PyTuple_SetItem($result,0,SWIG_NewPointerObj(swig::make_output_iterator(%static_cast($1,const $type &).first),
|
||||
swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
PyTuple_SetItem($result,1,SWIG_NewPointerObj(swig::make_output_iterator(%static_cast($1,const $type &).second),
|
||||
swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
}
|
||||
|
||||
%fragment("PyPairBoolOutputIterator","header",fragment=SWIG_From_frag(bool),fragment="PySequence_Cont") {}
|
||||
%fragment("SwigPyPairBoolOutputIterator","header",fragment=SWIG_From_frag(bool),fragment="SwigPySequence_Cont") {}
|
||||
|
||||
%typemap(out,noblock=1,fragment="PyPairBoolOutputIterator")
|
||||
%typemap(out,noblock=1,fragment="SwigPyPairBoolOutputIterator")
|
||||
std::pair<iterator, bool>, std::pair<const_iterator, bool> {
|
||||
$result = PyTuple_New(2);
|
||||
PyTuple_SetItem($result,0,SWIG_NewPointerObj(swig::make_output_iterator(%static_cast($1,const $type &).first),
|
||||
swig::PySwigIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
swig::SwigPyIterator::descriptor(),SWIG_POINTER_OWN));
|
||||
PyTuple_SetItem($result,1,SWIG_From(bool)(%static_cast($1,const $type &).second));
|
||||
}
|
||||
|
||||
%typemap(in,noblock=1,fragment="PySequence_Cont")
|
||||
iterator(swig::PySwigIterator *iter = 0, int res),
|
||||
reverse_iterator(swig::PySwigIterator *iter = 0, int res),
|
||||
const_iterator(swig::PySwigIterator *iter = 0, int res),
|
||||
const_reverse_iterator(swig::PySwigIterator *iter = 0, int res) {
|
||||
res = SWIG_ConvertPtr($input, %as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
|
||||
%typemap(in,noblock=1,fragment="SwigPySequence_Cont")
|
||||
iterator(swig::SwigPyIterator *iter = 0, int res),
|
||||
reverse_iterator(swig::SwigPyIterator *iter = 0, int res),
|
||||
const_iterator(swig::SwigPyIterator *iter = 0, int res),
|
||||
const_reverse_iterator(swig::SwigPyIterator *iter = 0, int res) {
|
||||
res = SWIG_ConvertPtr($input, %as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
|
||||
if (!SWIG_IsOK(res) || !iter) {
|
||||
%argument_fail(SWIG_TypeError, "$type", $symname, $argnum);
|
||||
} else {
|
||||
swig::PySwigIterator_T<$type > *iter_t = dynamic_cast<swig::PySwigIterator_T<$type > *>(iter);
|
||||
swig::SwigPyIterator_T<$type > *iter_t = dynamic_cast<swig::SwigPyIterator_T<$type > *>(iter);
|
||||
if (iter_t) {
|
||||
$1 = iter_t->get_current();
|
||||
} else {
|
||||
|
|
@ -575,18 +575,18 @@ namespace swig
|
|||
}
|
||||
}
|
||||
|
||||
%typecheck(%checkcode(ITERATOR),noblock=1,fragment="PySequence_Cont")
|
||||
%typecheck(%checkcode(ITERATOR),noblock=1,fragment="SwigPySequence_Cont")
|
||||
iterator, reverse_iterator, const_iterator, const_reverse_iterator {
|
||||
swig::PySwigIterator *iter = 0;
|
||||
int res = SWIG_ConvertPtr($input, %as_voidptrptr(&iter), swig::PySwigIterator::descriptor(), 0);
|
||||
$1 = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::PySwigIterator_T<$type > *>(iter) != 0));
|
||||
swig::SwigPyIterator *iter = 0;
|
||||
int res = SWIG_ConvertPtr($input, %as_voidptrptr(&iter), swig::SwigPyIterator::descriptor(), 0);
|
||||
$1 = (SWIG_IsOK(res) && iter && (dynamic_cast<swig::SwigPyIterator_T<$type > *>(iter) != 0));
|
||||
}
|
||||
|
||||
%fragment("PySequence_Cont");
|
||||
%fragment("SwigPySequence_Cont");
|
||||
|
||||
%newobject iterator(PyObject **PYTHON_SELF);
|
||||
%extend {
|
||||
swig::PySwigIterator* iterator(PyObject **PYTHON_SELF) {
|
||||
swig::SwigPyIterator* iterator(PyObject **PYTHON_SELF) {
|
||||
return swig::make_output_iterator(self->begin(), self->begin(), self->end(), *PYTHON_SELF);
|
||||
}
|
||||
|
||||
|
|
@ -623,7 +623,7 @@ namespace swig
|
|||
%swig_sequence_iterator(%arg(Sequence))
|
||||
%swig_container_methods(%arg(Sequence))
|
||||
|
||||
%fragment("PySequence_Base");
|
||||
%fragment("SwigPySequence_Base");
|
||||
|
||||
%extend {
|
||||
value_type pop() throw (std::out_of_range) {
|
||||
|
|
@ -740,16 +740,16 @@ namespace swig
|
|||
|
||||
%fragment("StdSequenceTraits","header",
|
||||
fragment="StdTraits",
|
||||
fragment="PySequence_Cont")
|
||||
fragment="SwigPySequence_Cont")
|
||||
{
|
||||
namespace swig {
|
||||
template <class PySeq, class Seq>
|
||||
template <class SwigPySeq, class Seq>
|
||||
inline void
|
||||
assign(const PySeq& pyseq, Seq* seq) {
|
||||
// seq->assign(pyseq.begin(), pyseq.end()); // not used as not always implemented
|
||||
typedef typename PySeq::value_type value_type;
|
||||
typename PySeq::const_iterator it = pyseq.begin();
|
||||
for (;it != pyseq.end(); ++it) {
|
||||
assign(const SwigPySeq& swigpyseq, Seq* seq) {
|
||||
// seq->assign(swigpyseq.begin(), swigpyseq.end()); // not used as not always implemented
|
||||
typedef typename SwigPySeq::value_type value_type;
|
||||
typename SwigPySeq::const_iterator it = swigpyseq.begin();
|
||||
for (;it != swigpyseq.end(); ++it) {
|
||||
seq->insert(seq->end(),(value_type)(*it));
|
||||
}
|
||||
}
|
||||
|
|
@ -769,14 +769,14 @@ namespace swig {
|
|||
}
|
||||
} else if (PySequence_Check(obj)) {
|
||||
try {
|
||||
PySequence_Cont<value_type> pyseq(obj);
|
||||
SwigPySequence_Cont<value_type> swigpyseq(obj);
|
||||
if (seq) {
|
||||
sequence *pseq = new sequence();
|
||||
assign(pyseq, pseq);
|
||||
assign(swigpyseq, pseq);
|
||||
*seq = pseq;
|
||||
return SWIG_NEWOBJ;
|
||||
} else {
|
||||
return pyseq.check() ? SWIG_OK : SWIG_ERROR;
|
||||
return swigpyseq.check() ? SWIG_OK : SWIG_ERROR;
|
||||
}
|
||||
} catch (std::exception& e) {
|
||||
if (seq) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue