2 * Copyright (C) 2020 Jérémie Galarneau <jeremie.galarneau@efficios.com>
4 * SPDX-License-Identifier: GPL-2.0-only
8 #ifndef METADATA_BUCKET_H
9 #define METADATA_BUCKET_H
11 #include <common/consumer/consumer.hpp>
13 struct metadata_bucket;
15 using metadata_bucket_flush_cb = ssize_t (*)(const struct stream_subbuffer *, void *);
17 enum metadata_bucket_status {
18 METADATA_BUCKET_STATUS_OK,
19 METADATA_BUCKET_STATUS_ERROR,
22 struct metadata_bucket *metadata_bucket_create(
23 metadata_bucket_flush_cb flush, void *data);
25 void metadata_bucket_destroy(struct metadata_bucket *bucket);
27 enum metadata_bucket_status metadata_bucket_fill(struct metadata_bucket *bucket,
28 const struct stream_subbuffer *buffer);
30 void metadata_bucket_reset(struct metadata_bucket *bucket);
32 #endif /* METADATA_BUCKET_H */