*/
#include <stdint.h>
+#include <stdbool.h>
-struct bt_ctf_trace;
+struct bt_trace;
/* A CTF metadata decoder object */
struct ctf_metadata_decoder;
CTF_METADATA_DECODER_STATUS_IR_VISITOR_ERROR = -4,
};
+/* Decoding configuration */
+struct ctf_metadata_decoder_config {
+ int64_t clock_class_offset_s;
+ int64_t clock_class_offset_ns;
+};
+
/*
- * Creates a CTF metadata decoder. `clock_class_offset_ns` is an
- * offset to apply to the decoded clock classes's offsets. `name` is
- * this decoder's trace's name.
+ * Creates a CTF metadata decoder. `name` is this decoder's trace's
+ * name.
*
* Returns `NULL` on error.
*/
BT_HIDDEN
struct ctf_metadata_decoder *ctf_metadata_decoder_create(
- int64_t clock_class_offset_ns, const char *name);
+ const struct ctf_metadata_decoder_config *config,
+ const char *name);
/*
* Destroys a CTF metadata decoder that you created with
* until the end of this file stream. If it finds new information (new
* event class, new stream class, or new clock class), it appends this
* information to the decoder's trace object (as returned by
- * ctf_metadata_get_trace()), or it creates this trace.
+ * ctf_metadata_decoder_get_ir_trace()), or it creates this trace.
*
* The metadata can be packetized or not.
*
enum ctf_metadata_decoder_status ctf_metadata_decoder_decode(
struct ctf_metadata_decoder *metadata_decoder, FILE *fp);
-/*
- * Returns a new reference to the current CTF IR trace object which is
- * the result of the metadata decoding process.
- *
- * The trace object, once created, remains the same until you call
- * ctf_metadata_decoder_destroy().
- */
BT_HIDDEN
-struct bt_ctf_trace *ctf_metadata_decoder_get_trace(
- struct ctf_metadata_decoder *metadata_decoder);
+struct bt_trace *ctf_metadata_decoder_get_ir_trace(
+ struct ctf_metadata_decoder *mdec);
+
+BT_HIDDEN
+struct ctf_trace_class *ctf_metadata_decoder_borrow_ctf_trace_class(
+ struct ctf_metadata_decoder *mdec);
/*
* Checks whether or not a given metadata file stream is packetized, and