kmimemagic.h
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
00035 class KMimeMagic;
00036
00045 class KMimeMagicResult
00046 {
00047 public:
00048 KMimeMagicResult() { m_iAccuracy = 100; }
00049 ~KMimeMagicResult() { }
00050
00054 QString mimeType() const { return m_strMimeType; }
00058 int accuracy() const { return m_iAccuracy; }
00062 bool isValid() const { return !m_strMimeType.isEmpty(); }
00063
00065
00067
00068 void setAccuracy( int _accuracy ) { m_iAccuracy = _accuracy; }
00069 void setInvalid() { m_strMimeType = QString::null; }
00070
00071 protected:
00072 QString m_strMimeType;
00073 int m_iAccuracy;
00074 };
00075
00100 class KMimeMagic
00101 {
00102 public:
00108 KMimeMagic();
00109
00113 KMimeMagic( const QString & configFile );
00114
00118 ~KMimeMagic();
00119
00126 bool mergeConfig( const QString & configFile );
00127
00134 bool mergeBufConfig(char *);
00135
00141 void setFollowLinks( bool _enable );
00142
00155 KMimeMagicResult* findFileType( const QString & _filename );
00156
00169 KMimeMagicResult* findBufferType( const QByteArray &p );
00170
00185 KMimeMagicResult * findBufferFileType( const QByteArray &, const QString & filename );
00186
00190 static KMimeMagic* self();
00191
00192 protected:
00196 KMimeMagicResult * magicResult;
00197
00198 static void initStatic();
00199 static KMimeMagic* s_pSelf;
00200
00201 private:
00202 void init( const QString& configFile );
00203
00207 bool followLinks;
00208
00212 QString resultBuf;
00213
00214 int finishResult();
00215 void process(const QString &);
00216 void tryit(unsigned char *, int);
00217 int fsmagic(const char *, struct stat *);
00218 int match(unsigned char *, int);
00219 int parse_line(char *line, int *rule, int lineno);
00220 int parse(char *, int);
00221 int buff_apprentice(char*buff);
00222 int apprentice(const QString &configFile);
00223 int ascmagic(unsigned char *, int);
00224 int textmagic(unsigned char *, int);
00225
00226 struct config_rec *conf;
00227 int accuracy;
00228 };
00229
00230 #endif
00231
This file is part of the documentation for kdelibs Version 3.1.0.