openldap/servers/slapd/back-perl/external.h
Kurt Zeilenga 216049bd12 New Frontend->Backend Interface
Separates per backend type from per backend database initialization
	and startup.  Also supports per type / per backend shutdown.
New frontend startup/shutdown routines are also provided:
	slap_init() slap_startup() slap_shutdown() slap_destroy()
New frontend->backend startup/shutdown is managed by:
	backend_init() backend_startup() backend_shutdown backend_destroy
backend_init() now calls bi_init() to initial all function pointers
for the backend (excepting bi_init() which is now the only hardcoded
entry point).  New entry points are detailed in slap.h struct
backend_info.  backend_info is a per database type structure.
Besides the new startup/shutdown entry points, the new interface
also supports per backend type configuration options.  One could have:

	backend bdb2	(new Berkeley DB 2 backend)
	bdb2_home	/directory

	database bdb2
	...

	*** This code is fairly experimental ***
	*** Much cleanup and testing is still needed ***

see slap.h for details on struct backend_db and backend_info.
1999-02-05 09:03:47 +00:00

51 lines
1.5 KiB
C

#ifndef _PERL_EXTERNAL_H
#define _PERL_EXTERNAL_H
LDAP_BEGIN_DECL
extern int perl_back_initialize LDAP_P(( BackendInfo *bi ));
extern int perl_back_open LDAP_P(( BackendInfo *bi ));
extern int perl_back_close LDAP_P(( BackendInfo *bi ));
extern int perl_back_destroy LDAP_P(( BackendInfo *bi ));
extern int perl_back_db_init LDAP_P(( BackendDB *bd ));
extern int perl_back_db_destroy LDAP_P(( BackendDB *bd ));
extern int perl_back_db_config LDAP_P(( BackendDB *bd,
char *fname, int lineno, int argc, char **argv ));
extern int perl_back_bind LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op,
char *dn, int method, struct berval *cred, char** edn ));
extern int perl_back_unbind LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op ));
extern int perl_back_search LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op,
char *base, int scope, int deref, int sizelimit, int timelimit,
Filter *filter, char *filterstr, char **attrs, int attrsonly ));
extern int perl_back_compare LDAP_P((BackendDB *bd,
Connection *conn, Operation *op,
char *dn, Ava *ava ));
extern int perl_back_modify LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op,
char *dn, LDAPModList *ml ));
extern int perl_back_modrdn LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op,
char *dn, char*newrdn, int deleteoldrdn ));
extern int perl_back_add LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op, Entry *e ));
extern int perl_back_delete LDAP_P(( BackendDB *bd,
Connection *conn, Operation *op, char *dn ));
LDAP_END_DECL
#endif /* _PERL_EXTERNAL_H */