]> git.sur5r.net Git - openldap/blob - servers/slapd/back-ndb/proto-ndb.h
70cc33ef07c4a9e5760814bac3df47123f7a7a3f
[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-2016 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         Operation *op,
65         NdbArgs *args,
66         int update );
67
68 extern int
69 ndb_entry_put_data(
70         BackendDB *be,
71         NdbArgs *args );
72
73 extern int
74 ndb_entry_del_data(
75         BackendDB *be,
76         NdbArgs *args );
77
78 extern int
79 ndb_entry_put_info(
80         BackendDB *be,
81         NdbArgs *args,
82         int update );
83
84 extern int
85 ndb_entry_get_info(
86         Operation *op,
87         NdbArgs *args,
88         int update,
89         struct berval *matched );
90
91 extern "C" int
92 ndb_entry_del_info(
93         BackendDB *be,
94         NdbArgs *args );
95
96 extern int
97 ndb_dn2rdns(
98         struct berval *dn,
99         NdbRdns *buf );
100
101 extern NdbAttrInfo *
102 ndb_ai_find( struct ndb_info *ni, AttributeType *at );
103
104 extern NdbAttrInfo *
105 ndb_ai_get( struct ndb_info *ni, struct berval *at );
106
107 extern int
108 ndb_aset_get( struct ndb_info *ni, struct berval *sname, struct berval *attrs, NdbOcInfo **ret );
109
110 extern int
111 ndb_aset_create( struct ndb_info *ni, NdbOcInfo *oci );
112
113 extern int
114 ndb_oc_read( struct ndb_info *ni, const NdbDictionary::Dictionary *dict );
115
116 extern int
117 ndb_oc_attrs(
118         NdbTransaction *txn,
119         const NdbDictionary::Table *myTable,
120         Entry *e,
121         NdbOcInfo *no,
122         NdbAttrInfo **attrs,
123         int nattrs,
124         Attribute *old );
125
126 extern int
127 ndb_has_children(
128         NdbArgs *NA,
129         int *hasChildren );
130
131 extern struct berval *
132 ndb_str2bvarray(
133         char *str,
134         int len,
135         char delim,
136         void *ctx );
137
138 extern struct berval *
139 ndb_ref2oclist(
140         const char *ref,
141         void *ctx );
142
143 extern int
144 ndb_next_id(
145         BackendDB *be,
146         Ndb *ndb,
147         ID *id );
148
149 extern int
150 ndb_thread_handle(
151         Operation *op,
152         Ndb **ndb );
153
154 extern int
155 ndb_back_init_cf(
156         BackendInfo *bi );
157
158 extern "C" void
159 ndb_trans_backoff( int num_retries );
160
161 extern "C" void
162 ndb_check_referral( Operation *op, SlapReply *rs, NdbArgs *NA );
163
164 LDAP_END_DECL
165
166 #endif /* _PROTO_NDB_H */