]> git.sur5r.net Git - openldap/blob - servers/slapd/back-monitor/proto-back-monitor.h
ITS#7182 allow for later monitor subsystem registration
[openldap] / servers / slapd / back-monitor / proto-back-monitor.h
1 /* $OpenLDAP$ */
2 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
3  *
4  * Copyright 2001-2012 The OpenLDAP Foundation.
5  * Portions Copyright 2001-2003 Pierangelo Masarati.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted only as authorized by the OpenLDAP
10  * Public License.
11  *
12  * A copy of this license is available in file LICENSE in the
13  * top-level directory of the distribution or, alternatively, at
14  * <http://www.OpenLDAP.org/license.html>.
15  */
16 /* ACKNOWLEDGEMENTS:
17  * This work was initially developed by Pierangelo Masarati for inclusion
18  * in OpenLDAP Software.
19  */
20
21 #ifndef _PROTO_BACK_MONITOR
22 #define _PROTO_BACK_MONITOR
23
24 #include <ldap_cdefs.h>
25
26 LDAP_BEGIN_DECL
27
28 /*
29  * backends
30  */
31 int
32 monitor_subsys_backend_init LDAP_P((
33         BackendDB               *be,
34         monitor_subsys_t        *ms ));
35
36 /*
37  * cache
38  */
39 extern int
40 monitor_cache_cmp LDAP_P((
41         const void              *c1,
42         const void              *c2 ));
43 extern int
44 monitor_cache_dup LDAP_P((
45         void                    *c1,
46         void                    *c2 ));
47 extern int
48 monitor_cache_add LDAP_P((
49         monitor_info_t          *mi,
50         Entry                   *e ));
51 extern int
52 monitor_cache_get LDAP_P((
53         monitor_info_t          *mi,
54         struct berval           *ndn,
55         Entry                   **ep ));
56 extern int
57 monitor_cache_remove LDAP_P((
58         monitor_info_t          *mi,
59         struct berval           *ndn,
60         Entry                   **ep ));
61 extern int
62 monitor_cache_dn2entry LDAP_P((
63         Operation               *op,
64         SlapReply               *rs,
65         struct berval           *ndn,
66         Entry                   **ep,
67         Entry                   **matched ));
68 extern int
69 monitor_cache_lock LDAP_P((
70         Entry                   *e ));
71 extern int
72 monitor_cache_release LDAP_P((
73         monitor_info_t          *mi,
74         Entry                   *e ));
75
76 extern int
77 monitor_cache_destroy LDAP_P((
78         monitor_info_t          *mi ));
79
80 extern int
81 monitor_back_release(
82         Operation *op,
83         Entry *e,
84         int rw );
85
86 /*
87  * connections
88  */
89 extern int
90 monitor_subsys_conn_init LDAP_P((
91         BackendDB               *be,
92         monitor_subsys_t        *ms ));
93
94 /*
95  * databases 
96  */
97 extern int
98 monitor_subsys_database_init LDAP_P((
99         BackendDB               *be,
100         monitor_subsys_t        *ms ));
101
102 /*
103  * entry
104  */
105 extern int
106 monitor_entry_update LDAP_P((
107         Operation               *op,
108         SlapReply               *rs,
109         Entry                   *e ));
110 extern int
111 monitor_entry_create LDAP_P((
112         Operation               *op,
113         SlapReply               *rs,
114         struct berval           *ndn,
115         Entry                   *e_parent,
116         Entry                   **ep ));
117 extern int
118 monitor_entry_modify LDAP_P((
119         Operation               *op,
120         SlapReply               *rs,
121         Entry                   *e ));
122 extern int
123 monitor_entry_test_flags LDAP_P((
124         monitor_entry_t         *mp,
125         int                     cond ));
126 extern monitor_entry_t *
127 monitor_back_entrypriv_create LDAP_P((
128         void ));
129 extern Entry *
130 monitor_back_entry_stub LDAP_P((
131         struct berval   *pdn,
132         struct berval   *pndn,
133         struct berval   *rdn,
134         ObjectClass             *oc,
135         monitor_info_t  *mi,
136         struct berval   *create,
137         struct berval   *modify ));
138
139 #define monitor_entrypriv_create monitor_back_entrypriv_create
140 #define monitor_entry_stub monitor_back_entry_stub
141
142 /*
143  * init
144  */
145 extern int
146 monitor_subsys_is_opened LDAP_P((
147         void ));
148 extern int
149 monitor_back_register_subsys LDAP_P((
150         monitor_subsys_t        *ms ));
151 extern int
152 monitor_back_register_subsys_late LDAP_P((
153         monitor_subsys_t        *ms ));
154 extern int
155 monitor_back_register_backend LDAP_P((
156         BackendInfo             *bi ));
157 extern int
158 monitor_back_register_database LDAP_P((
159         BackendDB               *be,
160         struct berval   *ndn ));
161 extern int
162 monitor_back_register_overlay_info LDAP_P((
163         slap_overinst           *on ));
164 extern int
165 monitor_back_register_overlay LDAP_P((
166         BackendDB               *be,
167         struct slap_overinst    *on,
168         struct berval           *ndn_out ));
169 extern int
170 monitor_back_register_backend_limbo LDAP_P((
171         BackendInfo             *bi ));
172 extern int
173 monitor_back_register_database_limbo LDAP_P((
174         BackendDB               *be,
175         struct berval           *ndn_out ));
176 extern int
177 monitor_back_register_overlay_info_limbo LDAP_P((
178         slap_overinst           *on ));
179 extern int
180 monitor_back_register_overlay_limbo LDAP_P((
181         BackendDB               *be,
182         struct slap_overinst    *on,
183         struct berval           *ndn_out ));
184 extern monitor_subsys_t *
185 monitor_back_get_subsys LDAP_P((
186         const char              *name ));
187 extern monitor_subsys_t *
188 monitor_back_get_subsys_by_dn LDAP_P((
189         struct berval           *ndn,
190         int                     sub ));
191 extern int
192 monitor_back_is_configured LDAP_P(( void ));
193 extern int
194 monitor_back_register_entry LDAP_P((
195         Entry                   *e,
196         monitor_callback_t      *cb,
197         monitor_subsys_t        *mss,
198         unsigned long           flags ));
199 extern int
200 monitor_back_register_entry_parent LDAP_P((
201         Entry                   *e,
202         monitor_callback_t      *cb,
203         monitor_subsys_t        *mss,
204         unsigned long           flags,
205         struct berval           *base,
206         int                     scope,
207         struct berval           *filter ));
208 extern int
209 monitor_search2ndn LDAP_P((
210         struct berval           *base,
211         int                     scope,
212         struct berval           *filter,
213         struct berval           *ndn ));
214 extern int
215 monitor_back_register_entry_attrs LDAP_P((
216         struct berval           *ndn,
217         Attribute               *a,
218         monitor_callback_t      *cb,
219         struct berval           *base,
220         int                     scope,
221         struct berval           *filter ));
222 extern int
223 monitor_back_register_entry_callback LDAP_P((
224         struct berval           *ndn,
225         monitor_callback_t      *cb,
226         struct berval           *base,
227         int                     scope,
228         struct berval           *filter ));
229 extern int
230 monitor_back_unregister_entry LDAP_P((
231         struct berval           *ndn ));
232 extern int
233 monitor_back_unregister_entry_parent LDAP_P((
234         struct berval           *nrdn,
235         monitor_callback_t      *target_cb,
236         struct berval           *base,
237         int                     scope,
238         struct berval           *filter ));
239 extern int
240 monitor_back_unregister_entry_attrs LDAP_P((
241         struct berval           *ndn,
242         Attribute               *a,
243         monitor_callback_t      *cb,
244         struct berval           *base,
245         int                     scope,
246         struct berval           *filter ));
247 extern int
248 monitor_back_unregister_entry_callback LDAP_P((
249         struct berval           *ndn,
250         monitor_callback_t      *cb,
251         struct berval           *base,
252         int                     scope,
253         struct berval           *filter ));
254
255 /*
256  * listener
257  */
258 extern int
259 monitor_subsys_listener_init LDAP_P((
260         BackendDB               *be,
261         monitor_subsys_t        *ms ));
262
263 /*
264  * log
265  */
266 extern int
267 monitor_subsys_log_init LDAP_P((
268         BackendDB               *be,
269         monitor_subsys_t        *ms ));
270
271 /*
272  * operations
273  */
274 extern int
275 monitor_subsys_ops_init LDAP_P((
276         BackendDB               *be,
277         monitor_subsys_t        *ms ));
278
279 /*
280  * overlay
281  */
282 extern int
283 monitor_subsys_overlay_init LDAP_P((
284         BackendDB               *be,
285         monitor_subsys_t        *ms ));
286
287 /*
288  * sent
289  */
290 extern int
291 monitor_subsys_sent_init LDAP_P((
292         BackendDB               *be,
293         monitor_subsys_t        *ms ));
294
295 /*
296  * threads
297  */
298 extern int
299 monitor_subsys_thread_init LDAP_P((
300         BackendDB               *be,
301         monitor_subsys_t        *ms ));
302
303 /*
304  * time
305  */
306 extern int monitor_subsys_time_init LDAP_P((
307         BackendDB               *be,
308         monitor_subsys_t        *ms ));
309
310 /*
311  * waiters
312  */
313 extern int
314 monitor_subsys_rww_init LDAP_P((
315         BackendDB               *be,
316         monitor_subsys_t        *ms ));
317
318 /*
319  * former external.h
320  */
321
322 extern BI_init                  monitor_back_initialize;
323
324 extern BI_db_init               monitor_back_db_init;
325 extern BI_db_open               monitor_back_db_open;
326 extern BI_config                monitor_back_config;
327 extern BI_db_destroy            monitor_back_db_destroy;
328 extern BI_db_config             monitor_back_db_config;
329
330 extern BI_op_search             monitor_back_search;
331 extern BI_op_compare            monitor_back_compare;
332 extern BI_op_modify             monitor_back_modify;
333 extern BI_op_bind               monitor_back_bind;
334 extern BI_operational           monitor_back_operational;
335
336 LDAP_END_DECL
337
338 #endif /* _PROTO_BACK_MONITOR */
339