DbMpoolFile::open

API Ref

#include <db_cxx.h>

int DbMpoolFile::open(const char *file, u_int32_t flags, int mode, size_t pagesize);


Description: DbMpoolFile::open

The DbMpoolFile::open method opens a file in the shared memory buffer pool.

The DbMpoolFile::open method either returns a non-zero error value or throws an exception that encapsulates a non-zero error value on failure, and returns 0 on success.

Parameters

file
The file parameter is the name of the file to be opened. If file is NULL, a private temporary file is created that cannot be shared with any other process (although it may be shared with other threads of control in the same process).

flags
The flags parameter must be set to 0 or by bitwise inclusively OR'ing together one or more of the following values:

DB_CREATE
Create any underlying files, as necessary. If the files do not already exist and the DB_CREATE flag is not specified, the call will fail.

DB_DIRECT
If set and supported by the system, turn off system buffering of the file to avoid double caching.

DB_NOMMAP
Always copy this file into the local cache instead of potentially mapping it into process memory (see the description of the DbEnv::set_mp_mmapsize method for further information).

DB_ODDFILESIZE
Attempts to open files which are not a multiple of the page size in length will fail, by default. If the DB_ODDFILESIZE flag is set, any partial page at the end of the file will be ignored and the open will proceed.

DB_RDONLY
Open any underlying files for reading only. Any attempt to write the file using the pool functions will fail, regardless of the actual permissions of the file.

mode
On UNIX systems or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by DbMpoolFile::open are created with mode mode (as described in chmod(2)) and modified by the process' umask value at the time of creation (see umask(2)). If mode is 0, DbMpoolFile::open will use a default mode of readable and writable by both owner and group. On Windows systems, the mode parameter is ignored. The group ownership of created files is based on the system and directory defaults, and is not further specified by Berkeley DB.

pagesize
The pagesize parameter is the size, in bytes, of the unit of transfer between the application and the cache, although it is not necessarily the unit of transfer between the cache and the underlying filesystem.

Errors

The DbMpoolFile::open method may fail and throw DbException, encapsulating one of the following non-zero errors, or return one of the following non-zero errors:

EINVAL
If the file has already been entered into the pool, and the pagesize value is not the same as when the file was entered into the pool, or the length of the file is not zero or a multiple of the pagesize; the DB_RDONLY flag was specified for an in-memory pool; or if an invalid flag value or parameter was specified.

If the maximum number of open files has been reached, the DbMpoolFile::open method will fail and either return ENOMEM or throw a DbMemoryException exception.


Class

DbEnv, DbMpoolFile

See Also

Memory Pools and Related Methods

APIRef

Copyright (c) 1996-2003 Sleepycat Software, Inc. - All rights reserved.