]> git.sur5r.net Git - openldap/blob - servers/slapd/back-ndb/proto-ndb.h
9a2e1b8bc51c6db58634a2390b0c00aef8b9c4bc
[openldap] / servers / slapd / back-ndb / proto-ndb.h
1 /* $OpenLDAP$ */
2 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3  *
4  * Copyright 2008 The OpenLDAP Foundation.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted only as authorized by the OpenLDAP
9  * Public License.
10  *
11  * A copy of this license is available in the file LICENSE in the
12  * top-level directory of the distribution or, alternatively, at
13  * <http://www.OpenLDAP.org/license.html>.
14  */
15 /* ACKNOWLEDGEMENTS:
16  * This work was initially developed by Howard Chu for inclusion
17  * in OpenLDAP Software. This work was sponsored by MySQL.
18  */
19
20 #ifndef _PROTO_NDB_H
21 #define _PROTO_NDB_H
22
23 LDAP_BEGIN_DECL
24
25 extern BI_init          ndb_back_initialize;
26
27 extern BI_open          ndb_back_open;
28 extern BI_close         ndb_back_close;
29 extern BI_destroy       ndb_back_destroy;
30
31 extern BI_db_init       ndb_back_db_init;
32 extern BI_db_destroy    ndb_back_db_destroy;
33
34 extern BI_op_bind       ndb_back_bind;
35 extern BI_op_unbind     ndb_back_unbind;
36 extern BI_op_search     ndb_back_search;
37 extern BI_op_compare    ndb_back_compare;
38 extern BI_op_modify     ndb_back_modify;
39 extern BI_op_modrdn     ndb_back_modrdn;
40 extern BI_op_add        ndb_back_add;
41 extern BI_op_delete     ndb_back_delete;
42
43 extern BI_operational   ndb_operational;
44 extern BI_has_subordinates      ndb_has_subordinates;
45 extern BI_entry_get_rw  ndb_entry_get;
46
47 extern BI_tool_entry_open       ndb_tool_entry_open;
48 extern BI_tool_entry_close      ndb_tool_entry_close;
49 extern BI_tool_entry_first      ndb_tool_entry_first;
50 extern BI_tool_entry_next       ndb_tool_entry_next;
51 extern BI_tool_entry_get        ndb_tool_entry_get;
52 extern BI_tool_entry_put        ndb_tool_entry_put;
53 extern BI_tool_dn2id_get        ndb_tool_dn2id_get;
54
55 extern int ndb_modify_internal(
56         Operation *op,
57         NdbArgs *NA,
58         const char **text,
59         char *textbuf,
60         size_t textlen );
61
62 extern int
63 ndb_entry_get_data(
64         BackendDB *be,
65         NdbArgs *args,
66         int update );
67
68 extern int
69 ndb_entry_put_data(
70         BackendDB *be,
71         NdbArgs *args,
72         int update );
73
74 extern int
75 ndb_entry_del_data(
76         BackendDB *be,
77         NdbArgs *args );
78
79 extern int
80 ndb_entry_put_info(
81         BackendDB *be,
82         NdbArgs *args,
83         int update );
84
85 extern int
86 ndb_entry_get_info(
87         BackendDB *be,
88         NdbArgs *args,
89         int update,
90         struct berval *matched );
91
92 extern "C" int
93 ndb_entry_del_info(
94         BackendDB *be,
95         NdbArgs *args );
96
97 extern int
98 ndb_dn2rdns(
99         struct berval *dn,
100         NdbRdns *buf );
101
102 extern NdbAttrInfo *
103 ndb_ai_find( struct ndb_info *ni, AttributeType *at );
104
105 extern NdbAttrInfo *
106 ndb_ai_get( struct ndb_info *ni, struct berval *at );
107
108 extern int
109 ndb_aset_get( struct ndb_info *ni, struct berval *sname, struct berval *attrs, NdbOcInfo **ret );
110
111 extern int
112 ndb_aset_create( struct ndb_info *ni, NdbOcInfo *oci );
113
114 extern int
115 ndb_oc_read( struct ndb_info *ni, const NdbDictionary::Dictionary *dict );
116
117 extern int
118 ndb_oc_attrs(
119         NdbTransaction *txn,
120         const NdbDictionary::Table *myTable,
121         Entry *e,
122         NdbOcInfo *no,
123         NdbAttrInfo **attrs,
124         int nattrs,
125         int update,
126         int *num,
127         NdbOperation **retop );
128
129 extern int
130 ndb_has_children(
131         NdbArgs *NA,
132         int *hasChildren );
133
134 extern struct berval *
135 ndb_str2bvarray(
136         char *str,
137         int len,
138         char delim );
139
140 extern struct berval *
141 ndb_ref2oclist(
142         const char *ref );
143
144 extern int
145 ndb_next_id(
146         BackendDB *be,
147         Ndb *ndb,
148         ID *id );
149
150 extern int
151 ndb_thread_handle(
152         Operation *op,
153         Ndb **ndb );
154
155 extern int
156 ndb_back_init_cf(
157         BackendInfo *bi );
158
159 extern void
160 ndb_trans_backoff( int num_retries );
161
162 LDAP_END_DECL
163
164 #endif /* _PROTO_NDB_H */