Apache Portable Runtime Utility Library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Typedefs | Functions
SDBM library

Data Structures

struct  apr_sdbm_datum_t
 

Macros

#define APR_SDBM_DIRFEXT   ".dir"
 
#define APR_SDBM_PAGFEXT   ".pag"
 
#define APR_SDBM_INSERT   0
 
#define APR_SDBM_REPLACE   1
 
#define APR_SDBM_INSERTDUP   2
 

Typedefs

typedef struct apr_sdbm_t apr_sdbm_t
 

Functions

apr_status_t apr_sdbm_open (apr_sdbm_t **db, const char *name, apr_int32_t mode, apr_fileperms_t perms, apr_pool_t *p)
 
apr_status_t apr_sdbm_close (apr_sdbm_t *db)
 
apr_status_t apr_sdbm_lock (apr_sdbm_t *db, int type)
 
apr_status_t apr_sdbm_unlock (apr_sdbm_t *db)
 
apr_status_t apr_sdbm_fetch (apr_sdbm_t *db, apr_sdbm_datum_t *value, apr_sdbm_datum_t key)
 
apr_status_t apr_sdbm_store (apr_sdbm_t *db, apr_sdbm_datum_t key, apr_sdbm_datum_t value, int opt)
 
apr_status_t apr_sdbm_delete (apr_sdbm_t *db, const apr_sdbm_datum_t key)
 
apr_status_t apr_sdbm_firstkey (apr_sdbm_t *db, apr_sdbm_datum_t *key)
 
apr_status_t apr_sdbm_nextkey (apr_sdbm_t *db, apr_sdbm_datum_t *key)
 
int apr_sdbm_rdonly (apr_sdbm_t *db)
 

Detailed Description

Macro Definition Documentation

#define APR_SDBM_DIRFEXT   ".dir"

SDBM Directory file extension

#define APR_SDBM_INSERT   0

Insert

#define APR_SDBM_INSERTDUP   2

Insert with duplicates

#define APR_SDBM_PAGFEXT   ".pag"

SDBM page file extension

#define APR_SDBM_REPLACE   1

Replace

Typedef Documentation

typedef struct apr_sdbm_t apr_sdbm_t

Structure for referencing an sdbm

Function Documentation

apr_status_t apr_sdbm_close ( apr_sdbm_t db)

Close an sdbm file previously opened by apr_sdbm_open

Parameters
dbThe database to close
apr_status_t apr_sdbm_delete ( apr_sdbm_t db,
const apr_sdbm_datum_t  key 
)

Delete an sdbm record value by key

Parameters
dbThe database
keyThe key datum of the record to delete
Remarks
It is not an error to delete a non-existent record.
apr_status_t apr_sdbm_fetch ( apr_sdbm_t db,
apr_sdbm_datum_t value,
apr_sdbm_datum_t  key 
)

Fetch an sdbm record value by key

Parameters
dbThe database
valueThe value datum retrieved for this record
keyThe key datum to find this record
apr_status_t apr_sdbm_firstkey ( apr_sdbm_t db,
apr_sdbm_datum_t key 
)

Retrieve the first record key from a dbm

Parameters
dbThe database
keyThe key datum of the first record
Remarks
The keys returned are not ordered. To traverse the list of keys for an sdbm opened with APR_SHARELOCK, the caller must use apr_sdbm_lock prior to retrieving the first record, and hold the lock until after the last call to apr_sdbm_nextkey.
apr_status_t apr_sdbm_lock ( apr_sdbm_t db,
int  type 
)

Lock an sdbm database for concurency of multiple operations

Parameters
dbThe database to lock
typeThe lock type
          APR_FLOCK_SHARED
          APR_FLOCK_EXCLUSIVE
Remarks
Calls to apr_sdbm_lock may be nested. All apr_sdbm functions perform implicit locking. Since an APR_FLOCK_SHARED lock cannot be portably promoted to an APR_FLOCK_EXCLUSIVE lock, apr_sdbm_store and apr_sdbm_delete calls will fail if an APR_FLOCK_SHARED lock is held. The apr_sdbm_lock call requires the database to be opened with the APR_SHARELOCK mode value.
apr_status_t apr_sdbm_nextkey ( apr_sdbm_t db,
apr_sdbm_datum_t key 
)

Retrieve the next record key from an sdbm

Parameters
dbThe database
keyThe key datum of the next record
apr_status_t apr_sdbm_open ( apr_sdbm_t **  db,
const char *  name,
apr_int32_t  mode,
apr_fileperms_t  perms,
apr_pool_t *  p 
)

Open an sdbm database by file name

Parameters
dbThe newly opened database
nameThe sdbm file to open
modeThe flag values (APR_READ and APR_BINARY flags are implicit)
          APR_WRITE          open for read-write access
          APR_CREATE         create the sdbm if it does not exist
          APR_TRUNCATE       empty the contents of the sdbm
          APR_EXCL           fail for APR_CREATE if the file exists
          APR_DELONCLOSE     delete the sdbm when closed
          APR_SHARELOCK      support locking across process/machines
permsPermissions to apply to if created
pThe pool to use when creating the sdbm
Remarks
The sdbm name is not a true file name, as sdbm appends suffixes for seperate data and index files.
int apr_sdbm_rdonly ( apr_sdbm_t db)

Returns true if the sdbm database opened for read-only access

Parameters
dbThe database to test
apr_status_t apr_sdbm_store ( apr_sdbm_t db,
apr_sdbm_datum_t  key,
apr_sdbm_datum_t  value,
int  opt 
)

Store an sdbm record value by key

Parameters
dbThe database
keyThe key datum to store this record by
valueThe value datum to store in this record
optThe method used to store the record
          APR_SDBM_INSERT     return an error if the record exists
          APR_SDBM_REPLACE    overwrite any existing record for key
apr_status_t apr_sdbm_unlock ( apr_sdbm_t db)

Release an sdbm lock previously aquired by apr_sdbm_lock

Parameters
dbThe database to unlock