src/cx/mempool.h

changeset 1180
4c3a69b9723a
parent 1178
9998cfb4a65b
equal deleted inserted replaced
1179:ca4c6f590a08 1180:4c3a69b9723a
78 /** 78 /**
79 * Deallocates a memory pool and frees the managed memory. 79 * Deallocates a memory pool and frees the managed memory.
80 * 80 *
81 * @param pool the memory pool to free 81 * @param pool the memory pool to free
82 */ 82 */
83 cx_attr_export
83 void cxMempoolFree(CxMempool *pool); 84 void cxMempoolFree(CxMempool *pool);
84 85
85 /** 86 /**
86 * Creates an array-based memory pool with a shared destructor function. 87 * Creates an array-based memory pool with a shared destructor function.
87 * 88 *
92 * @return the created memory pool or @c NULL if allocation failed 93 * @return the created memory pool or @c NULL if allocation failed
93 */ 94 */
94 cx_attr_nodiscard 95 cx_attr_nodiscard
95 cx_attr_malloc 96 cx_attr_malloc
96 cx_attr_dealloc(cxMempoolFree, 1) 97 cx_attr_dealloc(cxMempoolFree, 1)
98 cx_attr_export
97 CxMempool *cxMempoolCreate(size_t capacity, cx_destructor_func destr); 99 CxMempool *cxMempoolCreate(size_t capacity, cx_destructor_func destr);
98 100
99 /** 101 /**
100 * Creates a basic array-based memory pool. 102 * Creates a basic array-based memory pool.
101 * 103 *
112 * 114 *
113 * @param memory the object allocated in the pool 115 * @param memory the object allocated in the pool
114 * @param fnc the destructor function 116 * @param fnc the destructor function
115 */ 117 */
116 cx_attr_nonnull 118 cx_attr_nonnull
119 cx_attr_export
117 void cxMempoolSetDestructor( 120 void cxMempoolSetDestructor(
118 void *memory, 121 void *memory,
119 cx_destructor_func fnc 122 cx_destructor_func fnc
120 ); 123 );
121 124
126 * The destructor MUST NOT free the memory. 129 * The destructor MUST NOT free the memory.
127 * 130 *
128 * @param memory the object allocated in the pool 131 * @param memory the object allocated in the pool
129 */ 132 */
130 cx_attr_nonnull 133 cx_attr_nonnull
134 cx_attr_export
131 void cxMempoolRemoveDestructor(void *memory); 135 void cxMempoolRemoveDestructor(void *memory);
132 136
133 /** 137 /**
134 * Registers foreign memory with this pool. 138 * Registers foreign memory with this pool.
135 * 139 *
143 * @param destr the destructor function 147 * @param destr the destructor function
144 * @retval zero success 148 * @retval zero success
145 * @retval non-zero failure 149 * @retval non-zero failure
146 */ 150 */
147 cx_attr_nonnull 151 cx_attr_nonnull
152 cx_attr_export
148 int cxMempoolRegister( 153 int cxMempoolRegister(
149 CxMempool *pool, 154 CxMempool *pool,
150 void *memory, 155 void *memory,
151 cx_destructor_func destr 156 cx_destructor_func destr
152 ); 157 );

mercurial