#define _COMMON_INDEX_ALLOCATOR_H
#include <inttypes.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include <lttng/lttng-export.h>
struct lttng_index_allocator;
/*
* Create an index allocator of `index_count` slots.
*/
+extern "C" LTTNG_EXPORT
struct lttng_index_allocator *lttng_index_allocator_create(
uint64_t index_count);
/*
* Get the number of indexes currently in use.
*/
+extern "C" LTTNG_EXPORT
uint64_t lttng_index_allocator_get_index_count(
struct lttng_index_allocator *allocator);
/*
* Allocate (i.e. reserve) a slot.
*/
+extern "C" LTTNG_EXPORT
enum lttng_index_allocator_status lttng_index_allocator_alloc(
struct lttng_index_allocator *allocator,
uint64_t *index);
* Release a slot by index. The slot will be re-used by the index allocator
* in future 'alloc' calls.
*/
+extern "C" LTTNG_EXPORT
enum lttng_index_allocator_status lttng_index_allocator_release(
struct lttng_index_allocator *allocator, uint64_t index);
/*
* Destroy an index allocator.
*/
+extern "C" LTTNG_EXPORT
void lttng_index_allocator_destroy(struct lttng_index_allocator *allocator);
-#ifdef __cplusplus
-}
-#endif
-
#endif /* _COMMON_INDEX_ALLOCATOR_H */