diff options
author | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
---|---|---|
committer | cvsadm <cvsadm> | 2005-01-21 00:44:34 +0000 |
commit | b2093e3016027d6b5cf06b3f91f30769bfc099e2 (patch) | |
tree | cf58939393a9032182c4fbc4441164a9456e82f8 /ldap/servers/slapd/index_subsys.h | |
download | ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.gz ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.tar.xz ds-b2093e3016027d6b5cf06b3f91f30769bfc099e2.zip |
Moving NSCP Directory Server from DirectoryBranch to TRUNK, initial drop. (foxworth)ldapserver7x
Diffstat (limited to 'ldap/servers/slapd/index_subsys.h')
-rw-r--r-- | ldap/servers/slapd/index_subsys.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ldap/servers/slapd/index_subsys.h b/ldap/servers/slapd/index_subsys.h new file mode 100644 index 00000000..190659c5 --- /dev/null +++ b/ldap/servers/slapd/index_subsys.h @@ -0,0 +1,47 @@ +/** BEGIN COPYRIGHT BLOCK + * Copyright 2002 Netscape Communications Corporation. All rights reserved. + * END COPYRIGHT BLOCK **/ + +#ifndef _INDEX_SUBSYS_H_ +#define _INDEX_SUBSYS_H_ + +#include "slapi-plugin.h" + +typedef void IndexEntryList; +typedef unsigned int IndexEntryID; + +typedef int (*index_search_callback)(Slapi_Filter *filter, IndexEntryList **results, void *user_data ); +typedef int (*index_validate_callback)(); + +typedef struct __indexed_item +{ + /* item that is indexed, an LDAP string filter description of the index + * x=* = presence + * x=** = equality + * x=?* = substrings + */ + char *index_filter; /* item that is indexed, an LDAP string filter description of the index e.g. (presence=*) */ + index_search_callback search_op; /* search call back */ + char **associated_attrs; /* null terminated list of filter groupable attributes */ + Slapi_DN *namespace_dn; /* the namespace this index is valid for */ +} indexed_item; + + +#define INDEX_FILTER_EVALUTED 0 +#define INDEX_FILTER_UNEVALUATED 1 + + +/* prototypes */ + +/* for index plugins */ +int slapi_index_entry_list_create(IndexEntryList **list); +int slapi_index_entry_list_add(IndexEntryList **list, IndexEntryID id); +int slapi_index_register_decoder(char *plugin_id, index_validate_callback validate_op); +int slapi_index_register_index(char *plugin_id, indexed_item *registration_item, void *user_data); + +/* for backends */ +int index_subsys_assign_filter_decoders(Slapi_PBlock *pb); +int index_subsys_filter_decoders_done(Slapi_PBlock *pb); +int index_subsys_evaluate_filter(Slapi_Filter *f, Slapi_DN *namespace_dn, IndexEntryList **out); + +#endif /*_INDEX_SUBSYS_H_*/ |