dce_db_store(3dce) — Subroutines
Name
dce_db_store - Stores data into a backing store
Synopsis
#include <dce/dce.h>
#include <dce/dbif.h> void dce_db_store(
dce_db_handle_t handle,
void ∗key,
void ∗data,
error_status_t ∗status);
Parameters
Input
handleA handle, returned from dce_db_open(), that identifies the backing store being used.
keyA string or UUID that is the backing store key. The datatype of key must match the key method that was selected in the flags parameter to dce_db_open() when the backing store was created.
dataA pointer to the data structure to be stored.
Output
statusA pointer to the completion status. On successful completion, the routine returns error_status_ok. Otherwise, it returns an error.
Description
The dce_db_store() routine stores the data structure pointed to by data into the backing store. The conversion function that was specified in the call to dce_db_open() serializes the structure so that it can be written to disk.
If the key value is the same as a key already stored, the new data replaces the previously stored data associated with that key.
Notes
Because the dce_db_store() routine uses the encoding services, and they in turn use rpc_sm_allocate(), all programs that call dce_db_store() outside of a server operation (for instance, if a server does some backing store initialization, or in a standalone program) must call rpc_sm_enable_allocate() first. Indeed, every thread that calls dce_db_store() must do rpc_sm_enable_allocate(), but in the server side of an RPC, this is already done.
Errors
The following describes a partial list of errors that might be returned. Refer to the OSF DCE Problem Determination Guide for complete descriptions of all error messages.
db_s_bad_index_type
The key’s type is wrong, or else the backing store is not by name or by UUID.
db_s_readonly
The backing store was opened with the db_c_readonly flag, and cannot be written to.
db_s_store_failed
The data could not be stored into the backing store for some reason. The global variable errno may contain more information about the error.
db_s_iter_not_allowed
The function was called while an iteration, begun by dce_db_iter_start(), was in progress. Storing is not allowed during iteration.
error_status_ok
The call was successful.
Related Information
Functions: dce_db_fetch(3dce), dce_db_open(3dce), dce_db_store_by_name(3dce), dce_db_store_by_uuid(3dce).