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 <tqstring.h>
00034 #include <tdelibs_export.h>
00035
00036 class KMimeMagic;
00037
00046 class TDEIO_EXPORT KMimeMagicResult
00047 {
00048 public:
00049 KMimeMagicResult() { m_iAccuracy = 100; }
00050 ~KMimeMagicResult() { }
00051
00055 TQString 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 TQString& _mime ) { m_strMimeType = _mime; }
00069 void setAccuracy( int _accuracy ) { m_iAccuracy = _accuracy; }
00070 void setInvalid() { m_strMimeType = TQString::null; }
00071
00072 protected:
00073 TQString m_strMimeType;
00074 int m_iAccuracy;
00075 };
00076
00101 class TDEIO_EXPORT KMimeMagic
00102 {
00103 public:
00109 KMimeMagic();
00110
00114 KMimeMagic( const TQString & configFile );
00115
00119 ~KMimeMagic();
00120
00127 bool mergeConfig( const TQString & configFile );
00128
00134 void setFollowLinks( bool _enable );
00135
00148 KMimeMagicResult* findFileType( const TQString & _filename );
00149
00162 KMimeMagicResult* findBufferType( const TQByteArray &p );
00163
00178 KMimeMagicResult * findBufferFileType( const TQByteArray &, const TQString & filename );
00179
00183 static KMimeMagic* self();
00184
00185 protected:
00189 KMimeMagicResult * magicResult;
00190
00191 static void initStatic();
00192 static KMimeMagic* s_pSelf;
00193
00194 private:
00195 void init( const TQString& configFile );
00196
00197 bool bunused;
00198 TQString sunused;
00199
00200 int parse_line(char *line, int *rule, int lineno);
00201 int parse(char *, int);
00202 int buff_apprentice(char*buff);
00203 int apprentice(const TQString &configFile);
00204
00205 struct config_rec *conf;
00206 int iunused;
00207 };
00208
00209 #endif
00210