// qbuffer.sip generated by MetaSIP on Fri Sep 28 17:07:47 2007 // // This file is part of the QtCore Python extension module. // // Copyright (c) 2007 // Phil Thompson // // This file is part of PyQt. // // This copy of PyQt is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License version 2 as published by // the Free Software Foundation and appearing in the file LICENSE included in the // packaging of this file. // // PyQt is supplied 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 // PyQt; see the file LICENSE. If not, write to the Free Software Foundation, // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. class QBuffer : QIODevice { %TypeHeaderCode #include %End public: explicit QBuffer(QObject *parent /TransferThis/ = 0); QBuffer(QByteArray *buf, QObject *parent /TransferThis/ = 0); virtual ~QBuffer(); QByteArray &buffer(); const QByteArray &data() const; void setBuffer(QByteArray *a); void setData(const QByteArray &data); void setData(const char *adata /Array/, int alen /ArraySize/); virtual bool open(QFlags openMode); virtual void close(); virtual qint64 size() const; virtual qint64 pos() const; virtual bool seek(qint64 off); virtual bool atEnd() const; virtual bool canReadLine() const; protected: virtual SIP_PYOBJECT readData(qint64 maxlen) /ReleaseGIL/ [qint64 (char *data, qint64 maxlen)]; %MethodCode // Return the data read or None if there was an error. char *s; if ((s = (char *)sipMalloc(a0)) == NULL) sipIsErr = 1; else { qint64 len; Py_BEGIN_ALLOW_THREADS len = sipCpp->sipProtectVirt_readData(sipSelfWasArg, s, a0); Py_END_ALLOW_THREADS if (len < 0) { sipFree((ANY *)s); Py_INCREF(Py_None); sipRes = Py_None; } else { sipRes = PyString_FromStringAndSize(s, len); sipFree((ANY *)s); if (sipRes == NULL) sipIsErr = 1; } } %End virtual qint64 writeData(const char *data /Array/, qint64 len /ArraySize/) /ReleaseGIL/; private: QBuffer(const QBuffer &); };