ksycocafactory.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __ksycocafactory_h__
00020 #define __ksycocafactory_h__
00021
00022 #include "ksycocatype.h"
00023 #include "ksycocaentry.h"
00024
00025 #include <qdict.h>
00026 #include <qptrlist.h>
00027 class KSycoca;
00028 class QStringList;
00029 class QString;
00030 class KSycocaDict;
00031 class KSycocaResourceList;
00032
00033 typedef QDict<KSycocaEntry::Ptr> KSycocaEntryDict;
00034
00039 class KDECORE_EXPORT KSycocaFactory
00040 {
00041 public:
00042 virtual KSycocaFactoryId factoryId() const = 0;
00043
00044 protected:
00049 KSycocaFactory( KSycocaFactoryId factory_id );
00050
00051 public:
00052 virtual ~KSycocaFactory();
00053
00057 int offset() { return mOffset; }
00058
00062 KSycocaEntryDict * entryDict() { return m_entryDict; }
00063
00068 virtual KSycocaEntry *createEntry(const QString &file, const char *resource) = 0;
00069
00073 virtual void addEntry(KSycocaEntry *newEntry, const char *resource);
00074
00079 void removeEntry(KSycocaEntry *newEntry);
00080
00084 virtual KSycocaEntry *createEntry(int offset)=0;
00085
00089 KSycocaEntry::List allEntries();
00090
00102 virtual void save(QDataStream &str);
00103
00111 virtual void saveHeader(QDataStream &str);
00112
00116 virtual const KSycocaResourceList * resourceList() const { return m_resourceList; }
00117
00118 private:
00119 int mOffset;
00120
00121 protected:
00122 int m_sycocaDictOffset;
00123 int m_beginEntryOffset;
00124 int m_endEntryOffset;
00125 QDataStream *m_str;
00126
00127 KSycocaResourceList *m_resourceList;
00128 KSycocaEntryDict *m_entryDict;
00129 KSycocaDict *m_sycocaDict;
00130 protected:
00131 virtual void virtual_hook( int id, void* data );
00132 };
00133
00137 class KDECORE_EXPORT KSycocaFactoryList : public QPtrList<KSycocaFactory>
00138 {
00139 public:
00140 KSycocaFactoryList() { }
00141 };
00142
00143 #endif
|