logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

idls - ID List Management

Author

       Generated automatically by Doxygen for LMDB from the source code.

                                                      LMDB                                               idls(3)

Data Structure Documentation

Detailed Description

Field Documentation

MDB_IDMDB_ID2::mid
       The ID

   void*MDB_ID2::mptr
       The pointer

Function Documentation

unsignedmdb_midl_search(MDB_IDLids,MDB_IDid)
       Search for an ID in an IDL.

       Parametersids The IDL to search.
           id The ID to search for.

       Returns
           The index of the first ID greater than or equal to id.

   MDB_IDLmdb_midl_alloc(intnum)
       Allocate an IDL. Allocates memory for an IDL of the given size.

       Returns
           IDL on success, NULL on failure.

   voidmdb_midl_free(MDB_IDLids)
       Free an IDL.

       Parametersids The IDL to free.

   voidmdb_midl_shrink(MDB_IDL*idp)
       Shrink an IDL. Return the IDL to the default size if it has grown larger.

       Parametersidp Address of the IDL to shrink.

   intmdb_midl_need(MDB_IDL*idp,unsignednum)
       Make room for num additional elements in an IDL.

       Parametersidp Address of the IDL.
           num Number of elements to make room for.

       Returns
           0 on success, ENOMEM on failure.

   intmdb_midl_append(MDB_IDL*idp,MDB_IDid)
       Append an ID onto an IDL.

       Parametersidp Address of the IDL to append to.
           id The ID to append.

       Returns
           0 on success, ENOMEM if the IDL is too large.

   intmdb_midl_append_list(MDB_IDL*idp,MDB_IDLapp)
       Append an IDL onto an IDL.

       Parametersidp Address of the IDL to append to.
           app The IDL to append.

       Returns
           0 on success, ENOMEM if the IDL is too large.

   intmdb_midl_append_range(MDB_IDL*idp,MDB_IDid,unsignedn)
       Append an ID range onto an IDL.

       Parametersidp Address of the IDL to append to.
           id The lowest ID to append.
           n Number of IDs to append.

       Returns
           0 on success, ENOMEM if the IDL is too large.

   voidmdb_midl_xmerge(MDB_IDLidl,MDB_IDLmerge)
       Merge an IDL onto an IDL. The destination IDL must be big enough.

       Parametersidl The IDL to merge into.
           merge The IDL to merge.

   voidmdb_midl_sort(MDB_IDLids)
       Sort an IDL.

       Parametersids The IDL to sort.

   unsignedmdb_mid2l_search(MDB_ID2Lids,MDB_IDid)
       Search for an ID in an ID2L.

       Parametersids The ID2L to search.
           id The ID to search for.

       Returns
           The index of the first ID2 whose mid member is greater than or equal to id.

   intmdb_mid2l_insert(MDB_ID2Lids,MDB_ID2*id)
       Insert an ID2 into a ID2L.

       Parametersids The ID2L to insert into.
           id The ID2 to insert.

       Returns
           0 on success, -1 if the ID was already present in the ID2L.

   intmdb_mid2l_append(MDB_ID2Lids,MDB_ID2*id)
       Append an ID2 into a ID2L.

       Parametersids The ID2L to append into.
           id The ID2 to append.

       Returns
           0 on success, -2 if the ID2L is too big.

Macro Definition Documentation

#defineMDB_IDL_ALLOCLEN(ids)((ids)[-1])
       Current max length of an mdb_midl_alloc()ed IDL

   #definemdb_midl_xappend(idl,id)Value:.PP
               do { \
               MDB_ID *xidl = (idl), xlen = ++(xidl[0]); \
               xidl[xlen] = (id); \
           } while (0)
       Append ID to IDL. The IDL must be big enough.

Name

       idls - ID List Management

Struct Mdb_Id2

       An ID2 is an ID/pointer pair.

   DataFieldsMDB_IDmid
       void * mptr

Synopsis

DataStructures
       struct MDB_ID2Macros
       #define MDB_IDL_LOGN   16     /* DB_SIZE is 2^16, UM_SIZE is 2^17 */
       #define MDB_IDL_DB_SIZE   (1<<MDB_IDL_LOGN)
       #define MDB_IDL_UM_SIZE   (1<<(MDB_IDL_LOGN+1))
       #define MDB_IDL_DB_MAX   (MDB_IDL_DB_SIZE-1)
       #define MDB_IDL_UM_MAX   (MDB_IDL_UM_SIZE-1)
       #define MDB_IDL_SIZEOF(ids)   (((ids)[0]+1) * sizeof(MDB_ID))
       #define MDB_IDL_IS_ZERO(ids)   ( (ids)[0] == 0 )
       #define MDB_IDL_CPY(dst,  src)   (memcpy( dst, src, MDB_IDL_SIZEOF( src ) ))
       #define MDB_IDL_FIRST(ids)   ( (ids)[1] )
       #define MDB_IDL_LAST(ids)   ( (ids)[(ids)[0]] )
       #define MDB_IDL_ALLOCLEN(ids)   ( (ids)[-1] )
       #define mdb_midl_xappend(idl,  id)
       #define CMP(x,  y)   ( (x) < (y) ? -1 : (x) > (y) )
       #define SMALL   8
       #define MIDL_SWAP(a,  b)   { itmp=(a); (a)=(b); (b)=itmp; }

   Typedefs
       typedef size_t MDB_ID
       typedef MDB_ID * MDB_IDL
       typedef MDB_ID2 * MDB_ID2LFunctions
       unsigned mdb_midl_search (MDB_IDL ids, MDB_ID id)
       MDB_IDLmdb_midl_alloc (int num)
       void mdb_midl_free (MDB_IDL ids)
       void mdb_midl_shrink (MDB_IDL *idp)
       int mdb_midl_need (MDB_IDL *idp, unsigned num)
       int mdb_midl_append (MDB_IDL *idp, MDB_ID id)
       int mdb_midl_append_list (MDB_IDL *idp, MDB_IDL app)
       int mdb_midl_append_range (MDB_IDL *idp, MDB_ID id, unsigned n)
       void mdb_midl_xmerge (MDB_IDL idl, MDB_IDL merge)
       void mdb_midl_sort (MDB_IDL ids)
       unsigned mdb_mid2l_search (MDB_ID2L ids, MDB_ID id)
       int mdb_mid2l_insert (MDB_ID2L ids, MDB_ID2 *id)
       int mdb_mid2l_append (MDB_ID2L ids, MDB_ID2 *id)
       static int mdb_midl_grow (MDB_IDL *idp, int num)

Typedef Documentation

typedefsize_tMDB_ID
       A generic unsigned ID number. These were entryIDs in back-bdb. Preferably it should have the same size as
       a pointer.

   typedefMDB_ID*MDB_IDL
       An IDL is an ID List, a sorted array of IDs. The first element of the array is a counter for how many
       actual IDs are in the list. In the original back-bdb code, IDLs are sorted in ascending order. For libmdb
       IDLs are sorted in descending order.

   typedefMDB_ID2*MDB_ID2L
       An ID2L is an ID2 List, a sorted array of ID2s. The first element's mid member is a count of how many
       actual elements are in the array. The mptr member of the first element is unused. The array is sorted in
       ascending order by mid.

See Also