File indexing completed on 2024-04-21 04:54:13
0001 /* 0002 This file belong to the KMPlayer project, a movie player plugin for Konqueror 0003 SPDX-FileCopyrightText: 2007 Koos Vriezen <koos.vriezen@gmail.com> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef _TRIE_STRING_H_ 0009 #define _TRIE_STRING_H_ 0010 0011 #include "kmplayercommon_export.h" 0012 0013 #include <QString> 0014 0015 namespace KMPlayer { 0016 0017 class TrieNode; 0018 0019 class KMPLAYERCOMMON_EXPORT TrieString 0020 { 0021 TrieNode * node; 0022 friend bool operator == (const TrieString & s1, const TrieString & s2); 0023 friend bool operator == (const TrieString & s, const char * utf8); 0024 friend bool operator == (const char * utf8, const TrieString & s); 0025 friend bool operator != (const TrieString & s1, const TrieString & s2); 0026 public: 0027 TrieString (); 0028 TrieString (const QString & s); 0029 TrieString (const char * utf8); 0030 TrieString (const char *utf8, int length); 0031 TrieString (const TrieString & s); 0032 ~TrieString (); 0033 0034 QString toString () const; 0035 bool isNull () const; 0036 void clear (); 0037 bool startsWith (const TrieString & s) const; 0038 bool startsWith (const char * str) const; 0039 TrieString & operator = (const TrieString & s); 0040 TrieString & operator = (const char * utf8); 0041 bool operator < (const TrieString & s) const; 0042 }; 0043 0044 inline TrieString::TrieString () : node (nullptr) {} 0045 0046 class KMPLAYERCOMMON_EXPORT Ids 0047 { 0048 public: 0049 static void init(); 0050 static void reset(); 0051 0052 static TrieString attr_id; 0053 static TrieString attr_name; 0054 static TrieString attr_src; 0055 static TrieString attr_url; 0056 static TrieString attr_href; 0057 static TrieString attr_width; 0058 static TrieString attr_height; 0059 static TrieString attr_top; 0060 static TrieString attr_left; 0061 static TrieString attr_bottom; 0062 static TrieString attr_right; 0063 static TrieString attr_title; 0064 static TrieString attr_begin; 0065 static TrieString attr_dur; 0066 static TrieString attr_end; 0067 static TrieString attr_region; 0068 static TrieString attr_target; 0069 static TrieString attr_type; 0070 static TrieString attr_value; 0071 static TrieString attr_fill; 0072 static TrieString attr_fit; 0073 }; 0074 0075 inline bool TrieString::isNull () const { 0076 return !node; 0077 } 0078 0079 inline bool operator == (const TrieString & s1, const TrieString & s2) { 0080 return s1.node == s2.node; 0081 } 0082 0083 bool operator == (const TrieString & s, const char * utf8); 0084 0085 inline bool operator == (const char * utf8, const TrieString & s) { 0086 return s == utf8; 0087 } 0088 0089 inline bool operator != (const TrieString & s1, const TrieString & s2) { 0090 return s1.node != s2.node; 0091 } 0092 0093 void dumpTrie (); 0094 0095 } // namespace 0096 0097 #endif // _TRIE_STRING_H_