DB_ENV->memp_register API Ref

#include <db.h>

int DB_ENV->memp_register(DB_ENV *env, int ftype, int (*pgin_fcn)(DB_ENV *, db_pgno_t pgno, void *pgaddr, DBT *pgcookie), int (*pgout_fcn)(DB_ENV *, db_pgno_t pgno, void *pgaddr, DBT *pgcookie));


Description: DB_ENV->memp_register

The DB_ENV->memp_register method registers page-in and page-out functions for files of type ftype in the specified pool.

If the pgin_fcn function is non-NULL, it is called each time a page is read into the memory pool from a file of type ftype, or a page is created for a file of type ftype (see the DB_MPOOL_CREATE flag for the DB_MPOOLFILE->get method).

If the pgout_fcn function is non-NULL, it is called each time a page is written to a file of type ftype.

The purpose of the DB_ENV->memp_register function is to support processing when pages are entered into, or flushed from, the pool. For example, this functionality might be used to do byte-endian conversion as pages are read from, or written to, the underlying file.

A file type must be specified to make it possible for unrelated threads or processes that are sharing a pool, to evict each other's pages from the pool. During initialization, applications should call DB_ENV->memp_register for each type of file requiring input or output processing that will be sharing the underlying pool. (No registry is necessary for the standard Berkeley DB access method types because DB->open registers them separately.)

If a thread or process does not call DB_ENV->memp_register for a file type, it is impossible for it to evict pages for any file requiring input or output processing from the pool. For this reason, DB_ENV->memp_register should always be called by each application sharing a pool for each type of file included in the pool, regardless of whether or not the application itself uses files of that type.

The DB_ENV->memp_register method returns a non-zero error value on failure and 0 on success.

Parameters
ftype pgin_fcn, pgout_fcn


Class DB_ENV, DB_MPOOLFILE
See Also Memory Pools and Related Methods

APIRef

Copyright (c) 1996,2008 Oracle. All rights reserved.