Apache Portable Runtime Utility Library
include
private
apr_dbm_private.h
1
/* Licensed to the Apache Software Foundation (ASF) under one or more
2
* contributor license agreements. See the NOTICE file distributed with
3
* this work for additional information regarding copyright ownership.
4
* The ASF licenses this file to You under the Apache License, Version 2.0
5
* (the "License"); you may not use this file except in compliance with
6
* the License. You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
17
#ifndef APR_DBM_PRIVATE_H
18
#define APR_DBM_PRIVATE_H
19
20
#include "apr.h"
21
#include "apr_errno.h"
22
#include "apr_pools.h"
23
#include "
apr_dbm.h
"
24
#include "apr_file_io.h"
25
26
#include "apu.h"
27
28
/* ### for now, include the DBM selection; this will go away once we start
29
### building and linking all of the DBMs at once. */
30
#include "apu_select_dbm.h"
31
32
#ifdef __cplusplus
33
extern
"C"
{
34
#endif
35
42
APU_DECLARE(
int
) apr_posix_perms2mode(apr_fileperms_t perm);
43
47
typedef
struct
{
49
const
char
*
name
;
50
52
apr_status_t (*open)(
apr_dbm_t
**pdb,
const
char
*pathname,
53
apr_int32_t mode, apr_fileperms_t perm,
54
apr_pool_t *
pool
);
55
57
void (*close)(
apr_dbm_t
*dbm);
58
60
apr_status_t (*fetch)(
apr_dbm_t
*dbm,
apr_datum_t
key,
61
apr_datum_t
* pvalue);
62
64
apr_status_t (*store)(
apr_dbm_t
*dbm,
apr_datum_t
key,
apr_datum_t
value);
65
67
apr_status_t (*del)(
apr_dbm_t
*dbm,
apr_datum_t
key);
68
70
int (*exists)(
apr_dbm_t
*dbm,
apr_datum_t
key);
71
73
apr_status_t (*firstkey)(
apr_dbm_t
*dbm,
apr_datum_t
* pkey);
74
76
apr_status_t (*nextkey)(
apr_dbm_t
*dbm,
apr_datum_t
* pkey);
77
79
void (*freedatum)(
apr_dbm_t
*dbm,
apr_datum_t
data);
80
82
void (*getusednames)(apr_pool_t *
pool
,
83
const
char
*pathname,
84
const
char
**used1,
85
const
char
**used2);
86
87
}
apr_dbm_type_t
;
88
89
93
struct
apr_dbm_t
94
{
96
apr_pool_t *
pool
;
97
99
void
*
file
;
100
102
int
errcode
;
104
const
char
*
errmsg
;
105
107
const
apr_dbm_type_t
*
type
;
108
};
109
110
111
/* Declare all of the DBM provider tables */
112
APU_MODULE_DECLARE_DATA
extern
const
apr_dbm_type_t
apr_dbm_type_sdbm;
113
APU_MODULE_DECLARE_DATA
extern
const
apr_dbm_type_t
apr_dbm_type_gdbm;
114
APU_MODULE_DECLARE_DATA
extern
const
apr_dbm_type_t
apr_dbm_type_ndbm;
115
APU_MODULE_DECLARE_DATA
extern
const
apr_dbm_type_t
apr_dbm_type_db;
116
117
#ifdef __cplusplus
118
}
119
#endif
120
121
#endif
/* APR_DBM_PRIVATE_H */
apr_dbm_t::errmsg
const char * errmsg
Definition:
apr_dbm_private.h:104
apr_dbm_type_t::name
const char * name
Definition:
apr_dbm_private.h:49
apr_dbm_t::file
void * file
Definition:
apr_dbm_private.h:99
apr_dbm.h
APR-UTIL DBM library.
apr_dbm_t::pool
apr_pool_t * pool
Definition:
apr_dbm_private.h:96
apr_dbm_t::errcode
int errcode
Definition:
apr_dbm_private.h:102
apr_dbm_t
Definition:
apr_dbm_private.h:93
apr_dbm_t::type
const apr_dbm_type_t * type
Definition:
apr_dbm_private.h:107
apr_dbm_type_t
Definition:
apr_dbm_private.h:47
APU_MODULE_DECLARE_DATA
#define APU_MODULE_DECLARE_DATA
Definition:
apu.h:94
apr_datum_t
Definition:
apr_dbm.h:47
Generated by
1.8.17