]> git.sur5r.net Git - openldap/blobdiff - libraries/libmdb/midl.h
Tweak mdb comment with conflicting spec of 'ID'
[openldap] / libraries / libmdb / midl.h
index cf4a2b2924e196a486f123ad41326a8a378d750c..beafb097c0b2355f197e8cb0707475d4da512043 100644 (file)
@@ -11,7 +11,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 2000-2011 The OpenLDAP Foundation.
+ * Copyright 2000-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -36,8 +36,7 @@
  *     @{
  */
        /** A generic ID number. These were entryIDs in back-bdb.
-        *      It should be the largest integer type supported on a machine.
-        *      It should be equal to the size of a pointer.
+        *      Preferably it should have the same size as a pointer.
         */
 typedef size_t ID;
 
@@ -111,12 +110,37 @@ typedef ID *IDL;
 int mdb_midl_insert( IDL ids, ID id );
 #endif
 
+       /** Allocate an IDL.
+        * Allocates memory for an IDL of a default size.
+        * @return      IDL on success, NULL on failure.
+        */
+IDL mdb_midl_alloc();
+
+       /** Free an IDL.
+        * @param[in] ids       The IDL to free.
+        */
+void mdb_midl_free(IDL ids);
+
+       /** Shrink an IDL.
+        * Return the IDL to the default size if it has grown larger.
+        * @param[in,out] idp   Address of the IDL to shrink.
+        * @return      0 on no change, non-zero if shrunk.
+        */
+int mdb_midl_shrink(IDL *idp);
+
        /** Append an ID onto an IDL.
-        * @param[in,out] ids   The IDL to append to.
+        * @param[in,out] idp   Address of the IDL to append to.
         * @param[in] id        The ID to append.
-        * @return      0 on success, -2 if the IDL is too large.
+        * @return      0 on success, -1 if the IDL is too large.
+        */
+int mdb_midl_append( IDL *idp, ID id );
+
+       /** Append an IDL onto an IDL.
+        * @param[in,out] idp   Address of the IDL to append to.
+        * @param[in] app       The IDL to append.
+        * @return      0 on success, -1 if the IDL is too large.
         */
-int mdb_midl_append( IDL ids, ID id );
+int mdb_midl_append_list( IDL *idp, IDL app );
 
        /** Sort an IDL.
         * @param[in,out] ids   The IDL to sort.
@@ -148,7 +172,7 @@ unsigned mdb_mid2l_search( ID2L ids, ID id );
        /** Insert an ID2 into a ID2L.
         * @param[in,out] ids   The ID2L to insert into.
         * @param[in] id        The ID2 to insert.
-        * @return      0 on success, -1 if the ID was already present in the MIDL2.
+        * @return      0 on success, -1 if the ID was already present in the ID2L.
         */
 int mdb_mid2l_insert( ID2L ids, ID2 *id );