## e-dbhash

e-dbhash — Simple DB-based hash table for strings

## Functions

void | (*EDbHashFunc) ()
EDbHash * | e_dbhash_new ()
void | e_dbhash_add ()
void | e_dbhash_remove ()
EDbHashStatus | e_dbhash_compare ()
void | e_dbhash_foreach_key ()
void | e_dbhash_write ()
void | e_dbhash_destroy ()

## Types and Values

enum | EDbHashStatus
struct | EDbHash
| EDbHashPrivate

## Description

An EDbHash is a simple hash table of strings backed by a Berkeley DB file for permanent storage.

## Functions

### EDbHashFunc ()

    void
    (*EDbHashFunc) (const gchar *key,
                    gpointer user_data);

`EDbHashFunc` is deprecated and should not be used in newly-written code.

Callback function used in `e_dbhash_foreach_key()`.

#### Parameters

key | a database key |
user_data | user data passed to `e_dbhash_foreach_key()` |

### e_dbhash_new ()

    EDbHash *
    e_dbhash_new (const gchar *filename);

`e_dbhash_new` is deprecated and should not be used in newly-written code.

Creates a new EDbHash structure and opens the given Berkeley DB file, creating the DB file if necessary.

#### Parameters

filename | path to a Berkeley DB file |

#### Returns

a new EDbHash

### e_dbhash_add ()

    void
    e_dbhash_add (EDbHash *edbh,
                  const gchar *key,
                  const gchar *data);

`e_dbhash_add` is deprecated and should not be used in newly-written code.

Adds a database object for `key` .

#### Parameters

edbh | an EDbHash |
key | a database key |
data | a database object for `key` |

### e_dbhash_remove ()

    void
    e_dbhash_remove (EDbHash *edbh,
                     const gchar *key);

`e_dbhash_remove` is deprecated and should not be used in newly-written code.

Removes the database object corresponding to `key` .

#### Parameters

edbh | an EDbHash |
key | a database key |

### e_dbhash_compare ()

    EDbHashStatus
    e_dbhash_compare (EDbHash *edbh,
                      const gchar *key,
                      const gchar *compare_data);

`e_dbhash_compare` is deprecated and should not be used in newly-written code.

Compares `compare_data` to the database object corresponding to `key` using an MD5 checksum. Returns E_DBHASH_STATUS_SAME if the checksums match, E_DBHASH_STATUS_DIFFERENT if the checksums differ, or E_DBHASH_STATUS_NOT_FOUND if `key` is not present in the database.

#### Parameters

edbh | an EDbHash |
key | a database key |
compare_data | data to compare against the database |

#### Returns

a checksum comparison status

### e_dbhash_foreach_key ()

    void
    e_dbhash_foreach_key (EDbHash *edbh,
                          EDbHashFunc func,
                          gpointer user_data);

`e_dbhash_foreach_key` is deprecated and should not be used in newly-written code.

Calls `func` for each database object.

#### Parameters

edbh | an EDbHash |
func | a callback function |
user_data | data to pass to `func` |

### e_dbhash_write ()

    void
    e_dbhash_write (EDbHash *edbh);

`e_dbhash_write` is deprecated and should not be used in newly-written code.

Flushes database changes to disk.

#### Parameters

edbh | an EDbHash |

### e_dbhash_destroy ()

    void
    e_dbhash_destroy (EDbHash *edbh);

`e_dbhash_destroy` is deprecated and should not be used in newly-written code.

Closes the database file and frees the EDbHash.

#### Parameters

edbh | an EDbHash |

## Types and Values

### enum EDbHashStatus

`EDbHashStatus` is deprecated and should not be used in newly-written code.

Return codes for `e_dbhash_compare()`.

#### Members

E_DBHASH_STATUS_SAME | The checksums match. |
E_DBHASH_STATUS_DIFFERENT | The checksums differ. |
E_DBHASH_STATUS_NOT_FOUND | The given key was not found. |

### struct EDbHash

    struct EDbHash {
    	EDbHashPrivate *priv;
    };

`EDbHash` is deprecated and should not be used in newly-written code.

Contains only private data that should be read and manipulated using the functions below.

#### Members

EDbHashPrivate *`priv`; | private data |

### EDbHashPrivate

    typedef struct _EDbHashPrivate EDbHashPrivate;

`EDbHashPrivate` is deprecated and should not be used in newly-written code.