00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
#ifndef __ksycoca_h__
00020
#define __ksycoca_h__ "$Id: ksycoca.h,v 1.76.2.1 2004/02/28 08:34:06 coolo Exp $"
00021
00022
#include <dcopobject.h>
00023
#include <qobject.h>
00024
#include <qstringlist.h>
00025
#include "ksycocatype.h"
00026
00027
class QDataStream;
00028
class KSycocaPrivate;
00029
class KSycocaFactory;
00030
class KSycocaFactoryList;
00031
00032
00033
00034
00035
00036
00037
#define KSYCOCA_VERSION 72
00038
00043
class KSycoca :
public QObject,
public DCOPObject
00044 {
00045 Q_OBJECT
00046 K_DCOP
00047
00048
protected:
00053 KSycoca(
bool );
00054
00055
public:
00056
00060 KSycoca();
00061
00065
static KSycoca *
self();
00066
00067
virtual ~KSycoca();
00068
00069
static int version();
00070
00075
QDataStream *findEntry(
int offset, KSycocaType &type);
00079
QDataStream *findFactory( KSycocaFactoryId
id);
00083
QString kfsstnd_prefixes();
00087
QString language();
00088
00095 Q_UINT32 timeStamp();
00096
00106 Q_UINT32 updateSignature();
00107
00112
QStringList allResourceDirs();
00113
00117
void addFactory( KSycocaFactory * );
00118
00123
virtual bool isBuilding() {
return false; }
00124
00128
void disableAutoRebuild();
00129
00133
static QString determineRelativePath(
const QString & _fullpath,
const char *_resource );
00134
00140
static bool isChanged(
const char *type);
00141
00145
static void flagError();
00146
00150
static bool readError();
00151
00152 k_dcop:
00156
void notifyDatabaseChanged(
const QStringList &);
00157
00158 signals:
00163
void databaseChanged();
00164
00165
protected:
00166
bool checkVersion(
bool abortOnError=
true);
00167
bool openDatabase(
bool openDummyIfNotFound=
true);
00168
void closeDatabase();
00169
KSycocaFactoryList *m_lstFactories;
00170
QDataStream *m_str;
00171
bool bNoDatabase;
00172 size_t m_sycoca_size;
00173
const char *m_sycoca_mmap;
00174 Q_UINT32 m_timeStamp;
00175
00176
public:
00177
static KSycoca *_self;
00178
00179
protected:
00180
virtual void virtual_hook(
int id,
void* data );
00181
private:
00182 KSycocaPrivate *d;
00183 };
00184
00185
#endif