Drizzled Public API Documentation

ut0bh.h
Go to the documentation of this file.
1 /***************************************************************************/
19 /******************************************************************/
26 #ifndef INNOBASE_UT0BH_H
27 #define INNOBASE_UT0BH_H
28 
29 #include "univ.i"
30 
32 typedef int (*ib_bh_cmp_t)(const void* p1, const void* p2);
33 
34 typedef struct ib_bh_struct ib_bh_t;
35 
36 /**********************************************************************/
39 UNIV_INLINE
40 ulint
42 /*=======*/
43  const ib_bh_t* ib_bh);
45 /**********************************************************************/
48 UNIV_INLINE
49 ibool
51 /*===========*/
52  const ib_bh_t* ib_bh);
54 /**********************************************************************/
57 UNIV_INLINE
58 ibool
60 /*===========*/
61  const ib_bh_t* ib_bh);
63 /**********************************************************************/
66 UNIV_INLINE
67 void*
68 ib_bh_get(
69 /*=======*/
70  ib_bh_t* ib_bh,
71  ulint i);
73 /**********************************************************************/
76 UNIV_INLINE
77 void*
78 ib_bh_set(
79 /*======*/
80  ib_bh_t* ib_bh,
81  ulint i,
82  const void* elem);
84 /**********************************************************************/
87 UNIV_INLINE
88 void*
90 /*========*/
91  ib_bh_t* ib_bh);
93 /**********************************************************************/
96 UNIV_INLINE
97 void*
99 /*========*/
100  ib_bh_t* ib_bh);
102 /**********************************************************************/
105 UNIV_INTERN
106 ib_bh_t*
108 /*=========*/
110  ulint sizeof_elem,
111  ulint max_elems);
113 /**********************************************************************/
116 UNIV_INTERN
117 void
118 ib_bh_free(
119 /*=======*/
120  ib_bh_t* ib_bh);
122 /**********************************************************************/
125 UNIV_INTERN
126 void*
127 ib_bh_push(
128 /*=======*/
129  ib_bh_t* ib_bh,
130  const void* elem);
132 /**********************************************************************/
134 UNIV_INTERN
135 void
136 ib_bh_pop(
137 /*======*/
138  ib_bh_t* ib_bh);
141 struct ib_bh_struct {
142  ulint max_elems;
143  ulint n_elems;
144  ulint sizeof_elem;
146 };
147 
148 #ifndef UNIV_NONINL
149 #include "ut0bh.ic"
150 #endif
151 
152 #endif /* INNOBASE_UT0BH_H */
UNIV_INLINE void * ib_bh_get(ib_bh_t *ib_bh, ulint i)
ulint max_elems
Definition: ut0bh.h:142
ulint sizeof_elem
Definition: ut0bh.h:144
UNIV_INLINE ibool ib_bh_is_full(const ib_bh_t *ib_bh)
UNIV_INTERN ib_bh_t * ib_bh_create(ib_bh_cmp_t compare, ulint sizeof_elem, ulint max_elems)
Definition: ut0bh.cc:45
UNIV_INLINE void * ib_bh_set(ib_bh_t *ib_bh, ulint i, const void *elem)
int(* ib_bh_cmp_t)(const void *p1, const void *p2)
Definition: ut0bh.h:32
UNIV_INLINE void * ib_bh_last(ib_bh_t *ib_bh)
UNIV_INLINE ibool ib_bh_is_empty(const ib_bh_t *ib_bh)
ulint n_elems
Definition: ut0bh.h:143
ib_bh_cmp_t compare
Definition: ut0bh.h:145
UNIV_INTERN void * ib_bh_push(ib_bh_t *ib_bh, const void *elem)
Definition: ut0bh.cc:83
UNIV_INTERN void ib_bh_pop(ib_bh_t *ib_bh)
Definition: ut0bh.cc:119
UNIV_INLINE ulint ib_bh_size(const ib_bh_t *ib_bh)
UNIV_INLINE void * ib_bh_first(ib_bh_t *ib_bh)
UNIV_INTERN void ib_bh_free(ib_bh_t *ib_bh)
Definition: ut0bh.cc:71