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()); return Shiboken::Converter::isConvertible(pyObj) || PyBytes_Check(pyObj) || (ObjectType::isExternalConvertible(shiboType, pyObj)); } inline ByteArray Converter::toCpp(PyObject* pyObj) { if (pyObj == Py_None) { return ByteArray(); } else if (PyObject_TypeCheck(pyObj, SbkType())) { return *Converter::toCpp(pyObj); } else if (PyBytes_Check(pyObj)) { return ByteArray(PyBytes_AS_STRING(pyObj), PyBytes_GET_SIZE(pyObj)); } else if (PyUnicode_Check(pyObj)) { Shiboken::AutoDecRef data(PyUnicode_AsASCIIString(pyObj)); return ByteArray(PyBytes_AsString(data.object()), PyBytes_GET_SIZE(data.object())); } else if (Shiboken::String::check(pyObj)) { return ByteArray(Shiboken::String::toCString(pyObj)); } return ValueTypeConverter::toCpp(pyObj); } inline PyObject* Converter::toPython(const ByteArray& cppObj) { return ValueTypeConverter::toPython(cppObj); } }