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