00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
#ifndef KMIMEMAGIC_H
00031
#define KMIMEMAGIC_H
00032
00033
#include <qstring.h>
00034
#include <kdelibs_export.h>
00035
00036
class KMimeMagic;
00037
00046 class KIO_EXPORT_DEPRECATED KMimeMagicResult
00047 {
00048
public:
00049 KMimeMagicResult() { m_iAccuracy = 100; }
00050 ~KMimeMagicResult() { }
00051
00055 QString mimeType()
const {
return m_strMimeType; }
00059 int accuracy()
const {
return m_iAccuracy; }
00063 bool isValid()
const {
return !m_strMimeType.isEmpty(); }
00064
00066
00068
void setMimeType(
const QString& _mime ) { m_strMimeType = _mime; }
00069
void setAccuracy(
int _accuracy ) { m_iAccuracy = _accuracy; }
00070
void setInvalid() { m_strMimeType = QString::null; }
00071
00072
protected:
00073
QString m_strMimeType;
00074
int m_iAccuracy;
00075 };
00076
00101 class KIO_EXPORT_DEPRECATED KMimeMagic
00102 {
00103
public:
00109 KMimeMagic();
00110
00114 KMimeMagic(
const QString & configFile );
00115
00119 ~KMimeMagic();
00120
00127
bool mergeConfig(
const QString & configFile );
00128
00135
bool mergeBufConfig(
char *);
00136
00142
void setFollowLinks(
bool _enable );
00143
00156 KMimeMagicResult* findFileType(
const QString & _filename );
00157
00170 KMimeMagicResult* findBufferType(
const QByteArray &p );
00171
00186 KMimeMagicResult * findBufferFileType(
const QByteArray &,
const QString & filename );
00187
00191
static KMimeMagic*
self();
00192
00193
protected:
00197 KMimeMagicResult * magicResult;
00198
00199
static void initStatic();
00200
static KMimeMagic* s_pSelf;
00201
00202
private:
00203
void init(
const QString& configFile );
00204
00205
bool bunused;
00206
QString sunused;
00207
00208
int parse_line(
char *line,
int *rule,
int lineno);
00209
int parse(
char *,
int);
00210
int buff_apprentice(
char*buff);
00211
int apprentice(
const QString &configFile);
00212
00213
struct config_rec *conf;
00214
int iunused;
00215 };
00216
00217
#endif
00218