]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/slap.h
Update of back-bdb2 to KDZ's new entry lock schema.
[openldap] / servers / slapd / slap.h
index 5dabb215c6ed5f64c0e02750419a37c39f46549b..786702b2e4590cf4b33eb5926b3d610f30114d24 100644 (file)
@@ -138,33 +138,19 @@ typedef unsigned long     ID;
  * represents an entry in core
  */
 typedef struct entry {
-       ldap_pvt_thread_rdwr_t  e_rdwr; /* reader/writer lock */
-
-       char            *e_dn;          /* DN of this entry               */
-       char            *e_ndn;         /* normalized DN of this entry    */
-       Attribute       *e_attrs;       /* list of attributes + values    */
-
-
        /*
         * The ID field should only be changed before entry is
         * inserted into a cache.  The ID value is backend
         * specific.
         */
-       ID              e_id;           /* id of this entry - this should */
-                                       /* really be private to back-ldbm */
+       ID              e_id;
 
-       /*
-        * remaining fields require backend cache lock to access
-        * These items are specific to the LDBM backend and should
-        * be hidden.
-        */
-       char            e_state;        /* for the cache                  */
-#define ENTRY_STATE_DELETED            1
-#define ENTRY_STATE_CREATING   2
+       char            *e_dn;          /* DN of this entry */
+       char            *e_ndn;         /* normalized DN of this entry */
+       Attribute       *e_attrs;       /* list of attributes + values */
 
-       int             e_refcnt;       /* # threads ref'ing this entry   */
-       struct entry    *e_lrunext;     /* for cache lru list             */
-       struct entry    *e_lruprev;
+       /* for use by the backend for any purpose */
+       void*   e_private;
 } Entry;
 
 /*
@@ -289,7 +275,7 @@ struct backend_db {
        char    *be_update_ndn; /* allowed to make changes (in replicas)   */
        int     be_lastmod;     /* keep track of lastmodified{by,time}     */
 
-       void    *be_private;    /* anything the backend needs              */
+       void    *be_private;    /* anything the backend database needs     */
 };
 
 struct backend_info {
@@ -387,7 +373,8 @@ struct backend_info {
                char *objectclassValue, char *groupattrName ));
 #endif
 
-       void    *bi_private;    /* anything the backend needs */
+       unsigned int bi_nDB;    /* number of databases of this type */
+       void    *bi_private;    /* anything the backend type needs */
 };
 
 /*