tdeio/tdeio
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 <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