]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-bdb/proto-bdb.h
Add SLAP_MR_ORDERED_INDEX - support for inequality indexing. Currently
[openldap] / servers / slapd / back-bdb / proto-bdb.h
index c99f9da36b8187b6a08322df22073dcddd9d9a94..6d1c507d8332e993a6e5658fb8567b314a4058c1 100644 (file)
@@ -1,7 +1,16 @@
 /* $OpenLDAP$ */
-/*
- * Copyright 2000-2003 The OpenLDAP Foundation, All Rights Reserved.
- * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2000-2004 The OpenLDAP Foundation.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
  */
 
 #ifndef _PROTO_BDB_H
@@ -33,6 +42,20 @@ int bdb_attr_index_config LDAP_P(( struct bdb_info *bdb,
 
 void bdb_attr_index_destroy LDAP_P(( Avlnode *tree ));
 
+/*
+ * ctxcsn.c
+ */
+#define bdb_csn_commit                         BDB_SYMBOL(csn_commit)
+#define bdb_get_commit_csn                     BDB_SYMBOL(get_commit_csn)
+
+int bdb_csn_commit LDAP_P(( Operation *op, SlapReply *rs, DB_TXN *tid,
+                                               EntryInfo *ei, EntryInfo **suffix_ei, Entry **ctxcsn_e,
+                                               int *ctxcsn_added, u_int32_t locker ));
+
+int bdb_get_commit_csn LDAP_P(( Operation *op, SlapReply *rs,
+                                               struct berval **search_context_csn,
+                                               u_int32_t locker, DB_LOCK *ctxcsn_lock ));
+
 /*
  * dbcache.c
  */
@@ -41,7 +64,6 @@ void bdb_attr_index_destroy LDAP_P(( Avlnode *tree ));
 int
 bdb_db_cache(
     Backend    *be,
-    DB_TXN *tid,
     const char *name,
        DB **db );
 
@@ -181,7 +203,6 @@ BI_entry_get_rw bdb_entry_get;
 /*
  * idl.c
  */
-#ifdef SLAP_IDL_CACHE
 
 #define bdb_idl_cache_get                      BDB_SYMBOL(idl_cache_get)
 #define bdb_idl_cache_put                      BDB_SYMBOL(idl_cache_put)
@@ -206,7 +227,6 @@ bdb_idl_cache_del(
        struct bdb_info *bdb,
        DB              *db,
        DBT             *key );
-#endif
 
 #define bdb_idl_first                          BDB_SYMBOL(idl_first)
 #define bdb_idl_next                           BDB_SYMBOL(idl_next)
@@ -222,11 +242,13 @@ bdb_idl_cache_del(
 unsigned bdb_idl_search( ID *ids, ID id );
 
 int bdb_idl_fetch_key(
-       BackendDB *be,
-       DB *db,
-       DB_TXN *txn,
-       DBT *key,
-       ID *ids );
+       BackendDB       *be,
+       DB                      *db,
+       DB_TXN          *tid,
+       DBT                     *key,
+       ID                      *ids,
+       DBC                     **saved_cursor,
+       int                     get_flag );
 
 int bdb_idl_insert( ID *ids, ID id );
 
@@ -294,16 +316,15 @@ bdb_index_values LDAP_P((
        DB_TXN *txn,
        AttributeDescription *desc,
        BerVarray vals,
-       BerVarray xvals,
        ID id,
        int opid ));
 
 int bdb_index_entry LDAP_P(( Operation *op, DB_TXN *t, int r, Entry *e ));
 
-#define bdb_index_entry_add(be,t,e) \
-       bdb_index_entry((be),(t),SLAP_INDEX_ADD_OP,(e))
-#define bdb_index_entry_del(be,t,e) \
-       bdb_index_entry((be),(t),SLAP_INDEX_DELETE_OP,(e))
+#define bdb_index_entry_add(op,t,e) \
+       bdb_index_entry((op),(t),SLAP_INDEX_ADD_OP,(e))
+#define bdb_index_entry_del(op,t,e) \
+       bdb_index_entry((op),(t),SLAP_INDEX_DELETE_OP,(e))
 
 /*
  * init.c
@@ -324,7 +345,9 @@ bdb_key_read(
        DB *db,
        DB_TXN *txn,
     struct berval *k,
-       ID *ids );
+       ID *ids,
+    DBC **saved_cursor,
+        int get_flags );
 
 extern int
 bdb_key_change(
@@ -358,13 +381,6 @@ int bdb_modify_internal(
        char *textbuf,
        size_t textlen );
 
-/*
- * passwd.c
- */
-#define bdb_exop_passwd                                BDB_SYMBOL(exop_passwd)
-
-BI_op_extended bdb_exop_passwd;
-
 
 /*
  * cache.c
@@ -407,10 +423,12 @@ void bdb_unlocked_cache_return_entry_rw( Cache *cache, Entry *e, int rw );
 #define bdb_cache_delete                       BDB_SYMBOL(cache_delete)
 #define bdb_cache_delete_cleanup               BDB_SYMBOL(cache_delete_cleanup)
 #define bdb_cache_find_id                      BDB_SYMBOL(cache_find_id)
+#define bdb_cache_find_info                    BDB_SYMBOL(cache_find_info)
 #define bdb_cache_find_ndn                     BDB_SYMBOL(cache_find_ndn)
 #define bdb_cache_modify                       BDB_SYMBOL(cache_modify)
 #define bdb_cache_modrdn                       BDB_SYMBOL(cache_modrdn)
 #define bdb_cache_release_all          BDB_SYMBOL(cache_release_all)
+#define bdb_cache_delete_entry         BDB_SYMBOL(cache_delete_entry)
 
 int bdb_cache_children(
        Operation *op,
@@ -444,8 +462,11 @@ int bdb_cache_find_ndn(
        Operation *op,
        DB_TXN  *txn,
        struct berval   *ndn,
-       EntryInfo       **res,
-       u_int32_t       locker
+       EntryInfo       **res
+);
+EntryInfo * bdb_cache_find_info(
+       struct bdb_info *bdb,
+       ID id
 );
 int bdb_cache_find_id(
        Operation *op,
@@ -464,9 +485,37 @@ int bdb_cache_delete(
        DB_LOCK *lock
 );
 void bdb_cache_delete_cleanup(
+       Cache   *cache,
        Entry   *e
 );
 void bdb_cache_release_all( Cache *cache );
+void bdb_cache_delete_entry(
+       struct bdb_info *bdb,
+       EntryInfo *ei,
+       u_int32_t locker,
+       DB_LOCK *lock
+);
+
+#ifdef BDB_HIER
+int hdb_cache_load(
+       struct bdb_info *bdb,
+       EntryInfo *ei,
+       EntryInfo **res
+);
+#endif
+
+#define bdb_cache_entry_db_relock              BDB_SYMBOL(cache_entry_db_relock)
+int bdb_cache_entry_db_relock(
+       DB_ENV *env,
+       u_int32_t locker,
+       EntryInfo *ei,
+       int rw,
+       int tryOnly,
+       DB_LOCK *lock );
+
+int bdb_cache_entry_db_unlock(
+       DB_ENV *env,
+       DB_LOCK *lock );
 
 #ifdef BDB_REUSE_LOCKERS
 
@@ -487,59 +536,37 @@ int bdb_locker_id( Operation *op, DB_ENV *env, int *locker );
  * search.c
  */
 
-#ifdef LDAP_SYNC
-
 #define bdb_abandon                                    BDB_SYMBOL(abandon)
 #define bdb_cancel                                     BDB_SYMBOL(cancel)
 #define bdb_do_search                          BDB_SYMBOL(do_search)
+#define bdb_psearch                            BDB_SYMBOL(psearch)
 
 BI_op_abandon bdb_abandon;
 BI_op_cancel bdb_cancel;
 
-int bdb_do_search(
+int bdb_psearch(
        Operation       *op,
        SlapReply       *rs,
        Operation       *ps_op,
        Entry           *entry,
        int             psearch_type
 );
-#define        bdb_psearch(op, rs, sop, e, ps_type)    bdb_do_search(op, rs, sop, e, ps_type)
-#endif
-
 
-#ifdef LDAP_SYNC
-#define bdb_build_sync_state_ctrl      BDB_SYMBOL(build_sync_state_ctrl)
-#define bdb_build_sync_done_ctrl       BDB_SYMBOL(build_sync_done_ctrl)
-#define bdb_send_ldap_intermediate     BDB_SYMBOL(send_ldap_intermediate)
-
-int
-bdb_build_sync_state_ctrl(
-       Operation       *op,
-       SlapReply       *rs,
-       Entry           *e,
-       int             entry_sync_state,
-       LDAPControl     **ctrls,
-       int             num_ctrls,
-       int             send_cookie,
-       struct berval   *latest_entrycsn_bv     );
-
-int
-bdb_build_sync_done_ctrl(
+int bdb_do_search(
        Operation       *op,
        SlapReply       *rs,
-       LDAPControl     **ctrls,
-       int             num_ctrls,
-       int             send_cookie,
-       struct berval   *latest_entrycsn_bv     );
+       Operation       *ps_op,
+       Entry           *entry,
+       int             psearch_type
+);
 
-int
-bdb_send_ldap_intermediate(
-       Operation   *op,
-       SlapReply       *rs,
-       int         state,
-       struct berval *cookie );
-#endif
+/*
+ * trans.c
+ */
+#define bdb_trans_backoff                      BDB_SYMBOL(trans_backoff)
 
+void
+bdb_trans_backoff( int num_retries );
 
 LDAP_END_DECL