class KSycocaDict

# class KSycocaDict | More...
Internal Use Only
Definition | `#include <ksycocadict.h>`
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

#### Public Methods

- KSycocaDict ()
- KSycocaDict (QDataStream *str, int offset)
- ~KSycocaDict ()
- void add (const QString &key, KSycocaEntry *payload)
- int find_string (const QString &key )
- uint count ()
- void clear ()
- void save (QDataStream &str)

#### Protected Methods

- Q_UINT32 hashKey ( const QString &)

## Detailed Description

Hash table implementation for the sycoca database file

KSycocaDict () | ### KSycocaDict

Create an empty dict, for building the database

KSycocaDict (QDataStream *str, int offset) | ### KSycocaDict

Create a dict from an existing database

~KSycocaDict () | ### ~KSycocaDict

void add (const QString &key, KSycocaEntry *payload) | ### add

Adds a 'payload' to the dictionary with key 'key'.

'payload' should have a valid offset by the time the dictionary gets saved.

int find_string (const QString &key ) | ### find_string

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.

uint count () | ### count

The number of entries in the dictionary.

Only valid when building the database.

void clear () | ### clear

Reset the dictionary.

Only valid when building the database.

void save (QDataStream &str) | ### save

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.

Q_UINT32 hashKey ( const QString &) | ### hashKey

[protected]

Generated by: root on macppc.ports.openbsd.org on Sat Sep 6 10:36:15 2003, using kdoc 2.0a54.