00001
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