// This is the SIP interface definition for QByteArray. // // Copyright (c) 2007 // Riverbank Computing Limited // // 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 as published by the Free // Software Foundation; either version 2, or (at your option) any later // version. // // 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. %ExportedDoc QByteArray A Python string can be used whenever a QByteArray can be used. A QByteArray can be converted to a Python string using the Python str() function. QByteArray &assign const char *data uint size Not implemented. char &at uint i Not yet implemented. int contains const char &d Not yet implemented. bool fill const char &d int size = -1 Not yet implemented. int find const char &d uint i = 0 Not yet implemented. void resetRawData const char *data uintsize Not implemented. QByteArray &setRawData const char *data uintsize Not implemented. %End class QByteArray { %TypeHeaderCode #include %End public: QByteArray(); QByteArray(int); QByteArray(const QByteArray &); SIP_PYOBJECT data() const; %MethodCode // QByteArrays aren't '\0' terminated so set the size // explicitly. char *res; uint len; Py_BEGIN_ALLOW_THREADS res = sipCpp -> data(); len = sipCpp -> size(); Py_END_ALLOW_THREADS if (res) { if ((sipRes = PyString_FromStringAndSize(res,len)) == NULL) sipIsErr = 1; } else { Py_INCREF(Py_None); sipRes = Py_None; } %End // These are actually in QMemArray, which isn't implemented so pretend // they are here. uint nrefs() const; bool isEmpty() const; bool isNull() const; bool resize(uint); bool truncate(uint); // bool fill(const char &,int = -1); void detach(); QByteArray copy() const; QByteArray &assign(const QByteArray &); // QByteArray &assign(const char *,uint); QByteArray &duplicate(const QByteArray &); QByteArray &duplicate(const char *,uint); // QByteArray &setRawData(const char *,uint); // void resetRawData(const char *,uint); // int find(const char &,uint = 0) const; // int contains(const char &) const; // char &at(uint) const; SIP_PYOBJECT __str__(); %MethodCode // QByteArrays aren't '\0' terminated so set the size // explicitly. char *data; uint len; Py_BEGIN_ALLOW_THREADS data = sipCpp -> data(); len = sipCpp -> size(); Py_END_ALLOW_THREADS if (data == NULL) sipRes = PyString_FromString(""); else sipRes = PyString_FromStringAndSize(data,len); %End %ConvertToTypeCode // Allow a Python string whenever a QByteArray is expected. if (sipIsErr == NULL) return (PyString_Check(sipPy) || sipCanConvertToInstance(sipPy,sipClass_QByteArray,SIP_NO_CONVERTORS)); if (PyString_Check(sipPy)) { Py_BEGIN_ALLOW_THREADS QByteArray *ba = new QByteArray(); ba -> duplicate(PyString_AS_STRING(sipPy),PyString_GET_SIZE(sipPy)); *sipCppPtr = ba; Py_END_ALLOW_THREADS return sipGetState(sipTransferObj); } *sipCppPtr = reinterpret_cast(sipConvertToInstance(sipPy,sipClass_QByteArray,sipTransferObj,SIP_NO_CONVERTORS,0,sipIsErr)); return 0; %End }; %If (Qt_3_1_0 -) QByteArray qCompress(const uchar * /Array/,int /ArraySize/); QByteArray qCompress(const QByteArray &); QByteArray qUncompress(const uchar * /Array/,int /ArraySize/); QByteArray qUncompress(const QByteArray &); %End