namespace Shiboken { inline bool Converter::checkType(PyObject* pyObj) { return ValueTypeConverter::checkType(pyObj); } inline bool Converter::isConvertible(PyObject* pyObj) { if (ValueTypeConverter::isConvertible(pyObj)) return true; SbkObjectType* shiboType = reinterpret_cast(SbkType< ::QByteArray >()); return Shiboken::Converter::checkType(pyObj) || PyBytes_Check(pyObj) || (ObjectType::isExternalConvertible(shiboType, pyObj)); } inline QByteArray Converter::toCpp(PyObject* pyObj) { if (pyObj == Py_None) { return 0; } else if (PyObject_TypeCheck(pyObj, SbkType())) { return *Converter::toCpp(pyObj); } else if (PyBytes_Check(pyObj)) { return QByteArray(PyBytes_AS_STRING(pyObj), PyBytes_GET_SIZE(pyObj)); } else if (PyUnicode_Check(pyObj)) { Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(pyObj)); if (!data.isNull()) return QByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object())); else return QByteArray(); } else if (Shiboken::String::check(pyObj)) { return QByteArray(Shiboken::String::toCString(pyObj)); } else { return ValueTypeConverter::toCpp(pyObj); } } inline PyObject* Converter::toPython(const ::QByteArray& cppObj) { return ValueTypeConverter::toPython(cppObj); } }