Release 4.0: memp_XXX
Prev | Chapter 37. Upgrading Berkeley DB 3.3 applications to Berkeley DB 4.0 | Next

## Release 4.0: memp_XXX

The C API for the Berkeley DB Memory Pool subsystem was reworked in the 4.0 release as follows:

Historic functional interface | Berkeley DB 4.X method
--- | ---
memp_register | DB_ENV->memp_register()
memp_stat | DB_ENV->memp_stat()
memp_sync | DB_ENV->memp_sync()
memp_trickle | DB_ENV->memp_trickle()
memp_fopen | DB_ENV->memp_fcreate()
DB_MPOOL_FINFO: ftype | DB_MPOOLFILE->set_ftype()
DB_MPOOL_FINFO: pgcookie | DB_MPOOLFILE->set_pgcookie()
DB_MPOOL_FINFO: fileid | DB_MPOOLFILE->set_fileid()
DB_MPOOL_FINFO: lsn_offset | DB_MPOOLFILE->set_lsn_offset()
DB_MPOOL_FINFO: clear_len | DB_MPOOLFILE->set_clear_len()
memp_fopen | DB_MPOOLFILE->open()
memp_fclose | DB_MPOOLFILE->close()
memp_fput | DB_MPOOLFILE->put()
memp_fset | DB_MPOOLFILE->set
memp_fsync | DB_MPOOLFILE->sync()

Applications calling any of the memp_register, memp_stat, memp_sync or memp_trickle functions should update those calls to use the enclosing DB_ENV class handle's method (easily done as the first argument to the existing call is the correct DB_ENV class handle).

In addition, the DB_ENV->memp_stat() call has been changed in the 4.0 release to take a flags argument. To leave their historic behavior unchanged, applications should add a final argument of 0 to any calls made to DB_ENV->memp_stat().

Applications calling the memp_fopen function should update those calls as follows: First, acquire a Cache chapter handle using the DB_ENV->memp_fcreate() method. Second, if the DB_MPOOL_FINFO structure reference passed to the memp_fopen function was non-NULL, call the Cache chapter method corresponding to each initialized field in the DB_MPOOL_FINFO structure. Third, call the DB_MPOOLFILE->open() method method to open the underlying file. If the DB_MPOOLFILE->open() method call fails, then DB_MPOOLFILE->close() method must be called to destroy the allocated handle.

Applications calling the memp_fopen, memp_fclose, memp_fput, memp_fset, or memp_fsync functions should update those calls to use the enclosing Cache chapter handle's method. Again, this is easily done as the first argument to the existing call is the correct Cache chapter handle. With one exception, the calling conventions of the old and new interfaces are identical; the one exception is the DB_MPOOLFILE->close() method, which requires an additional flag parameter that should be set to 0.

Prev | Up | Next
Release 4.0: log_XXX | Home | Release 4.0: txn_XXX