KDECore
KSycocaDict Class Reference
#include <ksycocadict.h>
Public Member Functions | |
void | add (const QString &key, KSycocaEntry *payload) |
void | clear () |
uint | count () |
int | find_string (const QString &key) |
KSycocaDict (QDataStream *str, int offset) | |
KSycocaDict () | |
void | remove (const QString &key) |
void | save (QDataStream &str) |
~KSycocaDict () | |
Protected Member Functions | |
Q_UINT32 | hashKey (const QString &) |
Detailed Description
For internal use only.
Hash table implementation for the sycoca database file
Definition at line 34 of file ksycocadict.h.
Constructor & Destructor Documentation
KSycocaDict::KSycocaDict | ( | ) |
KSycocaDict::KSycocaDict | ( | QDataStream * | str, | |
int | offset | |||
) |
KSycocaDict::~KSycocaDict | ( | ) |
Definition at line 79 of file ksycocadict.cpp.
Member Function Documentation
void KSycocaDict::add | ( | const QString & | key, | |
KSycocaEntry * | payload | |||
) |
Adds a 'payload' to the dictionary with key 'key'.
'payload' should have a valid offset by the time the dictionary gets saved.
Definition at line 85 of file ksycocadict.cpp.
void KSycocaDict::clear | ( | ) |
Reset the dictionary.
Only valid when building the database.
Definition at line 175 of file ksycocadict.cpp.
uint KSycocaDict::count | ( | ) |
The number of entries in the dictionary.
Only valid when building the database.
Definition at line 167 of file ksycocadict.cpp.
int KSycocaDict::find_string | ( | const QString & | key | ) |
Looks up an entry identified by 'key'.
If 0 is returned, no matching entry exists. Otherwise, the offset of the entry is returned.
NOTE: It is not guaranteed that this entry is indeed the one you were looking for. After loading the entry you should check that it indeed matches the search key. If it doesn't then no matching entry exists.
Definition at line 115 of file ksycocadict.cpp.
uint KSycocaDict::hashKey | ( | const QString & | key | ) | [protected] |
Definition at line 182 of file ksycocadict.cpp.
void KSycocaDict::remove | ( | const QString & | key | ) |
Removes the 'payload' from the dictionary with key 'key'.
Not very fast, use with care O(N)
Definition at line 99 of file ksycocadict.cpp.
void KSycocaDict::save | ( | QDataStream & | str | ) |
Save the dictionary to the stream A reasonable fast hash algorithm will be created.
Typically this will find 90% of the entries directly. Average hash table size: nrOfItems * 20 bytes. Average duplicate list size: nrOfItms * avgKeyLength / 5.
Unknown keys have an average 20% chance to give a false hit. (That's why your program should check the result)
Example: Assume 1000 items with an average key length of 60 bytes.
Approx. 900 items will hash directly to the right entry. Approx. 100 items require a lookup in the duplicate list.
The hash table size will be approx. 20Kb. The duplicate list size will be approx. 12Kb.
Definition at line 278 of file ksycocadict.cpp.
The documentation for this class was generated from the following files: