// // Copyright 2006 Jim Bublitz // Earlier copyrights 1998 - 2005 Jim Bublitz and/or Phil Thompson // may also apply // Generated by preSip // module kio version KDE 3.5.3 // This software 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 of // the License, or (at your option) any later version. // // This software 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 General Public License for more details. // // You should have received a copy of the GNU General Public // License along with this library; see the file COPYING. // If not, write to the Free Software Foundation, Inc., // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class KSycocaEntry : KShared { %TypeHeaderCode #include %End public: virtual bool isType (KSycocaType) const; virtual KSycocaType sycocaType () const; public: //ig typedef KSharedPtr Ptr; //ig typedef TQValueList List; public: KSycocaEntry (const TQString&); %If ( KDE_3_1_0 - ) static void read (TQDataStream&, TQString&); static void read (TQDataStream&, TQStringList&); %End KSycocaEntry (TQDataStream&, int); virtual TQString name () const = 0; TQString entryPath () const; virtual bool isValid () const = 0; virtual bool isDeleted () const; int offset (); virtual void save (TQDataStream&); virtual void load (TQDataStream&) = 0; protected: protected: //igx virtual void virtual_hook (int, void*); }; // class KSycocaEntry %MappedType KSycocaEntry::Ptr //converts KSycocaEntry { %TypeHeaderCode #include #include %End %ConvertFromTypeCode // Convert to a Python instance if (!sipCpp) return NULL; KSharedPtr *cPtr = new KSharedPtr (*(KSharedPtr *)sipCpp); KSycocaEntry *cpp = cPtr->data (); PyObject *obj = sipConvertFromInstance (cpp, sipClass_KSycocaEntry, sipTransferObj); return obj; %End %ConvertToTypeCode // Convert a Python instance to a Ptr on the heap. if (sipIsErr == NULL) return sipCanConvertToType(sipPy, sipType_KSycocaEntry, SIP_NO_CONVERTORS); int iserr = 0; KSycocaEntry *cpp = (KSycocaEntry *)sipConvertToType(sipPy, sipType_KSycocaEntry, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); if (iserr) { *sipIsErr = 1; return 0; } *sipCppPtr = new KSharedPtr (cpp); return 1; %End }; %MappedType KSycocaEntry::List //converts a Python list of KSycocaEntry { %TypeHeaderCode #include #include #include #include #include #include %End %ConvertFromTypeCode // Convert to a Python list of Ptr (KService). if (!sipCpp) return PyList_New (0); PyObject *plist; // Create the list if ((plist = PyList_New(0)) == NULL) return NULL; // Get it. KSycocaEntry::List *cList = (KSycocaEntry::List *)sipCpp; PyObject *inst; KSharedPtr *svc; KSharedPtr *svcType; KSharedPtr *svcGroupType; KSycocaEntry::List::Iterator it; for( it = cList->begin(); it != cList->end(); ++it ) { KSharedPtr svcptr = static_cast(*it); svc = &svcptr; if (svc->data ()->sycocaType () == KST_KService) { svcType = (KSharedPtr *)svc; inst = sipConvertFromType(svcType, sipType_KService_Ptr, sipTransferObj); } else if (svc->data ()->sycocaType () == KST_KServiceGroup) { svcGroupType = (KSharedPtr *) svc; inst = sipConvertFromType(svcGroupType, sipType_KServiceGroup_Ptr, sipTransferObj); } else inst = NULL; if ((inst == NULL) || (PyList_Append (plist, inst) < 0)) { Py_XDECREF (inst); Py_DECREF (plist); return NULL; } } return plist; %End %ConvertToTypeCode // Convert a Python list to List on the heap. if (sipIsErr == NULL) return PyList_Check(sipPy); KSycocaEntry::List *cList = new KSycocaEntry::List; PyObject *elem; KSycocaEntry *service; int iserr = 0; for (int i = 0; i < PyList_Size (sipPy); i++) { elem = PyList_GET_ITEM (sipPy, i); service = (KSycocaEntry *)sipForceConvertToType(elem, sipType_KSycocaEntry, sipTransferObj, SIP_NO_CONVERTORS, NULL, &iserr); if (iserr) { *sipIsErr = 1; delete cList; return 0; } KSycocaEntry::Ptr ptr(service); cList->append (ptr); } *sipCppPtr = cList; return 1; %End };