Hi,

I'm at the moment having some fun with pyside-shiboken by trying to make
QtNetwork module work since it only depends on QtCore. Although my fun
time is becoming a nightmare due to an issue on 'waitForNewConnection'
(QLocalServer and QTcpServer).

First things first:
a) I will focus on QLocalSever only
b) 'waitForNewConnection' header is:
   bool QLocalServer::waitForNewConnection ( int msec = 0, bool * timedOut = 0 )

Checking typesystem_network.xml from pyside-boost I've notice that
'timedOut' argument is removed for obvious reason (bool*), and thus a
tuple must be returned containing 'retval' and 'ok_'.

Bridging to pyside-shiboken it would looks something like as:

<object-type name="QLocalServer">
  <modify-function signature="waitForNewConnection(int,bool*)" 
allow-thread="yes">
    <modify-argument index="2">
      <remove-default-expression/>
      <remove-argument/>
    </modify-argument>
    <modify-argument index="return">
      <replace-type modified-type="python::object" />
    </modify-argument>
    <inject-code class="target" position="beginning">
      <insert-template name="fix_args,bool*"/>
    </inject-code>
  </modify-function>
</object-type>

But when compiling I get:

/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:
In function ‘PyObject*
SbkQLocalServerFunc_waitForNewConnection(PyObject*, PyObject*)’:
/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:567:
error: ‘args’ was not declared in this scope
/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:579:
error: ‘cpp_arg0’ was not declared in this scope
/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:
At global scope:
/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:625:
error: expected primary-expression before ‘|’ token
/home/carlos/devel/scm/pyside/cgoncalves-pyside-shiboken/build/PySide/QtNetwork/PySide/QtNetwork/qlocalserver_wrapper.cpp:627:
error: too many initializers for ‘PyMethodDef’

The generated qlocalserver_wrapper.cpp file is attached.

My question is as simple as: what am I missing?

Thanks.

-- 
Regards,
Carlos Gonçalves
/*
 * This file is part of PySide: Python for Qt
 *
 * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
 *
 * Contact: PySide team <[email protected]>
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public License
 * version 2.1 as published by the Free Software Foundation.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 *
 */


//workaround to access protected functions
#define protected public

// default includes
#include <shiboken.h>
#include <typeresolver.h>
#include <typeinfo>
#include <signalmanager.h>
#include <dynamicqmetaobject.h>
#include "pyside_qtnetwork_python.h"

#include "qlocalserver_wrapper.h"

// Extra includes
#include <QList>
#include <qbytearray.h>
#include <qcoreevent.h>
#include <qlocalserver.h>
#include <qlocalsocket.h>
#include <qobject.h>
#include <qobjectdefs.h>
#include <qstring.h>
#include <qthread.h>
#include <qvariant.h>

using namespace Shiboken;

static const char* SbkQLocalServer_typeName(const void* cptr)
{
    return typeid(*reinterpret_cast<const QLocalServer*>(cptr)).name();
}

// Native ---------------------------------------------------------

QLocalServerWrapper::QLocalServerWrapper(QObject * parent) : QLocalServer(parent), m_metaObject(0) {
    // ... middle
}

bool QLocalServerWrapper::hasPendingConnections() const
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "hasPendingConnections");
    if (!py_override) {
        return this->QLocalServer::hasPendingConnections();
    }

    PyObject* pyargs = PyTuple_New(0);

    PyObject* py_result = PyObject_Call(py_override, pyargs, NULL);
    bool cpp_result = Shiboken::Converter<bool >::toCpp(py_result);
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
    return cpp_result;
}

QLocalSocket * QLocalServerWrapper::nextPendingConnection()
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "nextPendingConnection");
    if (!py_override) {
        return this->QLocalServer::nextPendingConnection();
    }

    PyObject* pyargs = PyTuple_New(0);

    PyObject* py_result = PyObject_Call(py_override, pyargs, NULL);
    QLocalSocket* cpp_result = SbkQLocalSocket_cptr(py_result);
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
    return cpp_result;
}

void QLocalServerWrapper::childEvent(QChildEvent * arg__1)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "childEvent");
    if (!py_override) {
        return this->QObject::childEvent(arg__1);
    }

    PyObject* pyargs = Py_BuildValue("(O)",
        Shiboken::Converter<QChildEvent* >::toPython(arg__1)
    );

    PyObject_Call(py_override, pyargs, NULL);
    BindingManager::instance().invalidateWrapper(PyTuple_GET_ITEM(pyargs, 0));
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
}

void QLocalServerWrapper::connectNotify(const char * signal)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "connectNotify");
    if (!py_override) {
        return this->QObject::connectNotify(signal);
    }

    PyObject* pyargs = Py_BuildValue("(z)",
        signal
    );

    PyObject_Call(py_override, pyargs, NULL);
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
}

void QLocalServerWrapper::customEvent(QEvent * arg__1)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "customEvent");
    if (!py_override) {
        return this->QObject::customEvent(arg__1);
    }

    PyObject* pyargs = Py_BuildValue("(O)",
        Shiboken::Converter<QEvent* >::toPython(arg__1)
    );

    PyObject_Call(py_override, pyargs, NULL);
    BindingManager::instance().invalidateWrapper(PyTuple_GET_ITEM(pyargs, 0));
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
}

void QLocalServerWrapper::disconnectNotify(const char * signal)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "disconnectNotify");
    if (!py_override) {
        return this->QObject::disconnectNotify(signal);
    }

    PyObject* pyargs = Py_BuildValue("(z)",
        signal
    );

    PyObject_Call(py_override, pyargs, NULL);
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
}

bool QLocalServerWrapper::event(QEvent * arg__1)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "event");
    if (!py_override) {
        return this->QObject::event(arg__1);
    }

    PyObject* pyargs = Py_BuildValue("(O)",
        Shiboken::Converter<QEvent* >::toPython(arg__1)
    );

    PyObject* py_result = PyObject_Call(py_override, pyargs, NULL);
    bool cpp_result = Shiboken::Converter<bool >::toCpp(py_result);
    BindingManager::instance().invalidateWrapper(PyTuple_GET_ITEM(pyargs, 0));
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
    return cpp_result;
}

bool QLocalServerWrapper::eventFilter(QObject * arg__1, QEvent * arg__2)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "eventFilter");
    if (!py_override) {
        return this->QObject::eventFilter(arg__1, arg__2);
    }

    PyObject* pyargs = Py_BuildValue("(OO)",
        Shiboken::Converter<QObject* >::toPython(arg__1),
        Shiboken::Converter<QEvent* >::toPython(arg__2)
    );

    PyObject* py_result = PyObject_Call(py_override, pyargs, NULL);
    bool cpp_result = Shiboken::Converter<bool >::toCpp(py_result);
    BindingManager::instance().invalidateWrapper(PyTuple_GET_ITEM(pyargs, 1));
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
    return cpp_result;
}

void QLocalServerWrapper::timerEvent(QTimerEvent * arg__1)
{
    Shiboken::GilState gil;
    PyObject* py_override = BindingManager::instance().getOverride(this, "timerEvent");
    if (!py_override) {
        return this->QObject::timerEvent(arg__1);
    }

    PyObject* pyargs = Py_BuildValue("(O)",
        Shiboken::Converter<QTimerEvent* >::toPython(arg__1)
    );

    PyObject_Call(py_override, pyargs, NULL);
    BindingManager::instance().invalidateWrapper(PyTuple_GET_ITEM(pyargs, 0));
    Py_XDECREF(pyargs);
    Py_XDECREF(py_override);
}

const QMetaObject* QLocalServerWrapper::metaObject() const
{
    if (!m_metaObject) {
        PyObject *pySelf = BindingManager::instance().retrieveWrapper(this);
        m_metaObject = new PySide::DynamicQMetaObject(pySelf->ob_type->tp_name, &QLocalServer::staticMetaObject);
        }
    return m_metaObject;
}

int QLocalServerWrapper::qt_metacall(QMetaObject::Call call, int id, void** args)
{
    int result = QLocalServer::qt_metacall(call, id, args);
    return result < 0 ? result : PySide::SignalManager::qt_metacall(this, call, id, args);
}

QLocalServerWrapper::~QLocalServerWrapper()
{
    BindingManager::instance().invalidateWrapper(this);
    delete m_metaObject;
}

// Target ---------------------------------------------------------

static int
SbkQLocalServer_Init(PyObject* self, PyObject* args, PyObject* kwds)
{
    QLocalServerWrapper* cptr;
    SbkBaseWrapper* sbkSelf = reinterpret_cast<SbkBaseWrapper*>(self);
    assert(!sbkSelf->cptr);

    int numArgs = PyTuple_GET_SIZE(args);
    PyObject* pyargs[] = {0};

    if (!PyArg_UnpackTuple(args, "QLocalServer", 0, 1, &(pyargs[0])))
        return -1;

    if (numArgs == 0) {
        // QLocalServer(QObject*)
        cptr = new QLocalServerWrapper();
        Shiboken::setParent(pyargs[0], self);
    } else if ((SbkQObject_Check(pyargs[0]) || Shiboken::Converter<QObject* >::isConvertible(pyargs[0]))) {
        if (Shiboken::cppObjectIsInvalid(pyargs[0]))
            return -1;
        QObject* cpp_arg0 = Shiboken::Converter<QObject* >::toCpp(pyargs[0]);
        // QLocalServer(QObject*)
        cptr = new QLocalServerWrapper(cpp_arg0);
        Shiboken::setParent(pyargs[0], self);
    } else goto SbkQLocalServer_Init_TypeError;

    sbkSelf->cptr = cptr;
    sbkSelf->validCppObject = 1;
    sbkSelf->containsCppWrapper = 1;
    BindingManager::instance().registerWrapper(sbkSelf);

    return 1;

    SbkQLocalServer_Init_TypeError:
        PyErr_SetString(PyExc_TypeError, "'QLocalServer()' called with wrong parameters.");
        return -1;
}

static PyObject*
SbkQLocalServerFunc_close(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;


    // close()
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    cppSelf->QLocalServer::close();

    if (PyErr_Occurred()) {
        return 0;
    }
    Py_RETURN_NONE;
}

static PyObject*
SbkQLocalServerFunc_errorString(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // errorString()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    QString cpp_result = cppSelf->QLocalServer::errorString();
    py_result = Shiboken::Converter<QString >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_fullServerName(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // fullServerName()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    QString cpp_result = cppSelf->QLocalServer::fullServerName();
    py_result = Shiboken::Converter<QString >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_hasPendingConnections(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // hasPendingConnections()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    bool cpp_result = cppSelf->QLocalServer::hasPendingConnections();
    py_result = Shiboken::Converter<bool >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_isListening(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // isListening()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    bool cpp_result = cppSelf->QLocalServer::isListening();
    py_result = Shiboken::Converter<bool >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_listen(PyObject* self, PyObject* arg)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    if ((SbkQString_Check(arg) || Shiboken::Converter<QString >::isConvertible(arg))) {
        if ((SbkQString_Check(arg) || SbkQChar_Check(arg) || SbkQByteArray_Check(arg) || SbkQLatin1String_Check(arg)) && Shiboken::cppObjectIsInvalid(arg))
            return 0;
        std::auto_ptr<QString > cpp_arg0_auto_ptr;
        QString* cpp_arg0 = Shiboken::Converter<QString* >::toCpp(arg);
        if (!SbkQString_Check(arg))
            cpp_arg0_auto_ptr = std::auto_ptr<QString >(cpp_arg0);
        // listen(QString)
        QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
        bool cpp_result = cppSelf->QLocalServer::listen(*cpp_arg0);
        py_result = Shiboken::Converter<bool >::toPython(cpp_result);
    } else goto SbkQLocalServerFunc_listen_TypeError;

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;

    SbkQLocalServerFunc_listen_TypeError:
        PyErr_SetString(PyExc_TypeError, "'listen()' called with wrong parameters.");
        return 0;
}

static PyObject*
SbkQLocalServerFunc_maxPendingConnections(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // maxPendingConnections()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    int cpp_result = cppSelf->QLocalServer::maxPendingConnections();
    py_result = Shiboken::Converter<int >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_nextPendingConnection(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // nextPendingConnection()
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    QLocalSocket * cpp_result = cppSelf->QLocalServer::nextPendingConnection();
    py_result = Shiboken::Converter<QLocalSocket* >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_removeServer(PyObject* self, PyObject* arg)
{
    PyObject* py_result = 0;

    if ((SbkQString_Check(arg) || Shiboken::Converter<QString >::isConvertible(arg))) {
        if ((SbkQString_Check(arg) || SbkQChar_Check(arg) || SbkQByteArray_Check(arg) || SbkQLatin1String_Check(arg)) && Shiboken::cppObjectIsInvalid(arg))
            return 0;
        std::auto_ptr<QString > cpp_arg0_auto_ptr;
        QString* cpp_arg0 = Shiboken::Converter<QString* >::toCpp(arg);
        if (!SbkQString_Check(arg))
            cpp_arg0_auto_ptr = std::auto_ptr<QString >(cpp_arg0);
        // removeServer(QString)
        bool cpp_result = QLocalServer::removeServer(*cpp_arg0);
        py_result = Shiboken::Converter<bool >::toPython(cpp_result);
    } else goto SbkQLocalServerFunc_removeServer_TypeError;

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;

    SbkQLocalServerFunc_removeServer_TypeError:
        PyErr_SetString(PyExc_TypeError, "'removeServer()' called with wrong parameters.");
        return 0;
}

static PyObject*
SbkQLocalServerFunc_serverError(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // serverError()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    QAbstractSocket::SocketError cpp_result = cppSelf->QLocalServer::serverError();
    py_result = Shiboken::Converter<QAbstractSocket::SocketError >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_serverName(PyObject* self)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;

    // serverName()const
    QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
    QString cpp_result = cppSelf->QLocalServer::serverName();
    py_result = Shiboken::Converter<QString >::toPython(cpp_result);

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;
}

static PyObject*
SbkQLocalServerFunc_setMaxPendingConnections(PyObject* self, PyObject* arg)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;


    if (PyNumber_Check(arg)) {
        int cpp_arg0 = Shiboken::Converter<int >::toCpp(arg);
        // setMaxPendingConnections(int)
        QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
        cppSelf->QLocalServer::setMaxPendingConnections(cpp_arg0);
    } else goto SbkQLocalServerFunc_setMaxPendingConnections_TypeError;

    if (PyErr_Occurred()) {
        return 0;
    }
    Py_RETURN_NONE;

    SbkQLocalServerFunc_setMaxPendingConnections_TypeError:
        PyErr_SetString(PyExc_TypeError, "'setMaxPendingConnections()' called with wrong parameters.");
        return 0;
}

static PyObject*
SbkQLocalServerFunc_waitForNewConnection(PyObject* self, PyObject* arg)
{
    if (Shiboken::cppObjectIsInvalid(self))
        return 0;

    PyObject* py_result = 0;
    Shiboken::ThreadStateSaver thread_state_saver;

    int numArgs = PyTuple_GET_SIZE(args);
    PyObject* pyargs[] = {0};

    if (!PyArg_UnpackTuple(args, "waitForNewConnection", -1, 1, &(pyargs[0])))
        return 0;

    if (numArgs == 0) {
        // waitForNewConnection(int,bool*)
        QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
        
        // TEMPLATE - fix_args,bool* - START
        bool ok_;
        bool retval_ = cppSelf->waitForNewConnection(cpp_arg0, &ok_);
        py_result = PyTuple_Pack(2, Shiboken::Converter<bool >::toPython(retval_), Shiboken::Converter<bool >::toPython(ok_));
        // TEMPLATE - fix_args,bool* - END
        


    } else if (PyNumber_Check(arg)) {
        int cpp_arg0 = Shiboken::Converter<int >::toCpp(arg);
        // waitForNewConnection(int,bool*)
        QLocalServer* cppSelf = SbkQLocalServer_cptr(self);
        
        // TEMPLATE - fix_args,bool* - START
        bool ok_;
        bool retval_ = cppSelf->waitForNewConnection(cpp_arg0, &ok_);
        py_result = PyTuple_Pack(2, Shiboken::Converter<bool >::toPython(retval_), Shiboken::Converter<bool >::toPython(ok_));
        // TEMPLATE - fix_args,bool* - END
        


    } else goto SbkQLocalServerFunc_waitForNewConnection_TypeError;

    if (PyErr_Occurred() || !py_result) {
        Py_XDECREF(py_result);
        return 0;
    }
        return py_result;
;

    SbkQLocalServerFunc_waitForNewConnection_TypeError:
        PyErr_SetString(PyExc_TypeError, "'waitForNewConnection()' called with wrong parameters.");
        return 0;
}

static PyMethodDef SbkQLocalServer_methods[] = {
    {"close", (PyCFunction)SbkQLocalServerFunc_close, METH_NOARGS},
    {"errorString", (PyCFunction)SbkQLocalServerFunc_errorString, METH_NOARGS},
    {"fullServerName", (PyCFunction)SbkQLocalServerFunc_fullServerName, METH_NOARGS},
    {"hasPendingConnections", (PyCFunction)SbkQLocalServerFunc_hasPendingConnections, METH_NOARGS},
    {"isListening", (PyCFunction)SbkQLocalServerFunc_isListening, METH_NOARGS},
    {"listen", (PyCFunction)SbkQLocalServerFunc_listen, METH_O},
    {"maxPendingConnections", (PyCFunction)SbkQLocalServerFunc_maxPendingConnections, METH_NOARGS},
    {"nextPendingConnection", (PyCFunction)SbkQLocalServerFunc_nextPendingConnection, METH_NOARGS},
    {"removeServer", (PyCFunction)SbkQLocalServerFunc_removeServer, METH_O|METH_STATIC},
    {"serverError", (PyCFunction)SbkQLocalServerFunc_serverError, METH_NOARGS},
    {"serverName", (PyCFunction)SbkQLocalServerFunc_serverName, METH_NOARGS},
    {"setMaxPendingConnections", (PyCFunction)SbkQLocalServerFunc_setMaxPendingConnections, METH_O},
    {"waitForNewConnection", (PyCFunction)SbkQLocalServerFunc_waitForNewConnection, |METH_O},
    {0} // Sentinel
};

extern "C"
{

// Class Definition -----------------------------------------------
Shiboken::SbkBaseWrapperType SbkQLocalServer_Type = { { {
    PyObject_HEAD_INIT(&Shiboken::SbkBaseWrapperType_Type)
    /*ob_size*/             0,
    /*tp_name*/             "QLocalServer",
    /*tp_basicsize*/        sizeof(Shiboken::SbkBaseWrapper),
    /*tp_itemsize*/         0,
    /*tp_dealloc*/          (destructor)&(Shiboken::SbkBaseWrapper_Dealloc< QLocalServerWrapper >),
    /*tp_print*/            0,
    /*tp_getattr*/          0,
    /*tp_setattr*/          0,
    /*tp_compare*/          0,
    /*tp_repr*/             0,
    /*tp_as_number*/        0,
    /*tp_as_sequence*/      0,
    /*tp_as_mapping*/       0,
    /*tp_hash*/             0,
    /*tp_call*/             0,
    /*tp_str*/              0,
    /*tp_getattro*/         0,
    /*tp_setattro*/         0,
    /*tp_as_buffer*/        0,
    /*tp_flags*/            Py_TPFLAGS_DEFAULT|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_CHECKTYPES,
    /*tp_doc*/              0,
    /*tp_traverse*/         0,
    /*tp_clear*/            0,
    /*tp_richcompare*/      0,
    /*tp_weaklistoffset*/   0,
    /*tp_iter*/             0,
    /*tp_iternext*/         0,
    /*tp_methods*/          SbkQLocalServer_methods,
    /*tp_members*/          0,
    /*tp_getset*/           0,
    /*tp_base*/             (PyTypeObject*)&SbkQObject_Type,
    /*tp_dict*/             0,
    /*tp_descr_get*/        0,
    /*tp_descr_set*/        0,
    /*tp_dictoffset*/       0,
    /*tp_init*/             SbkQLocalServer_Init,
    /*tp_alloc*/            0,
    /*tp_new*/              Shiboken::SbkBaseWrapper_TpNew,
    /*tp_free*/             0,
    /*tp_is_gc*/            0,
    /*tp_bases*/            0,
    /*tp_mro*/              0,
    /*tp_cache*/            0,
    /*tp_subclasses*/       0,
    /*tp_weaklist*/         0
}, },
    /*mi_offsets*/          0,
    /*mi_init*/             0,
    /*mi_specialcast*/      0,
    /*type_name_func*/      SbkQLocalServer_typeName
};


PyAPI_FUNC(void)
init_QLocalServer(PyObject* module)
{
    if (PyType_Ready((PyTypeObject*)&SbkQLocalServer_Type) < 0)
        return;

    Py_INCREF(&SbkQLocalServer_Type);
    PyModule_AddObject(module, "QLocalServer",
        ((PyObject*)&SbkQLocalServer_Type));

    Shiboken::TypeResolver::createObjectTypeResolver<QLocalServer >("QLocalServer*");
    Shiboken::TypeResolver::createObjectTypeResolver<QLocalServer >(typeid(QLocalServer).name());
}


} // extern "C"

namespace Shiboken
{
// Copy C++ object implementation
// Converter implementations
} // namespace Shiboken

_______________________________________________
PySide mailing list
[email protected]
http://lists.openbossa.org/listinfo/pyside

Reply via email to