X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fctf-writer%2Fwriter.h;h=82719c66aebdf09f9e1cea56c224ec78a902837a;hb=98bd6ec2cbc37814f9d92372fd8e9aa2c5956489;hp=68031ac3fce2b52facc099925975e9728f5b94f3;hpb=46bd0f2b6f3056aa85ac827a85fd8c878f261313;p=babeltrace.git diff --git a/include/babeltrace/ctf-writer/writer.h b/include/babeltrace/ctf-writer/writer.h index 68031ac3..82719c66 100644 --- a/include/babeltrace/ctf-writer/writer.h +++ b/include/babeltrace/ctf-writer/writer.h @@ -2,9 +2,7 @@ #define BABELTRACE_CTF_WRITER_WRITER_H /* - * BabelTrace - CTF Writer: Writer - * - * Copyright 2013 EfficiOS Inc. + * Copyright 2013, 2014 Jérémie Galarneau * * Author: Jérémie Galarneau * @@ -30,6 +28,11 @@ * http://www.efficios.com/ctf */ +#include +#include +#include +#include + #ifdef __cplusplus extern "C" { #endif @@ -39,13 +42,6 @@ struct bt_ctf_stream; struct bt_ctf_stream_class; struct bt_ctf_clock; -enum bt_ctf_byte_order { - BT_CTF_BYTE_ORDER_NATIVE = 0, - BT_CTF_BYTE_ORDER_LITTLE_ENDIAN, - BT_CTF_BYTE_ORDER_BIG_ENDIAN, - BT_CTF_BYTE_ORDER_NETWORK, -}; - /* * bt_ctf_writer_create: create a writer instance. * @@ -58,6 +54,16 @@ enum bt_ctf_byte_order { */ extern struct bt_ctf_writer *bt_ctf_writer_create(const char *path); +/* + * bt_ctf_writer_get_trace: Get a writer's associated trace. + * + * @param writer Writer instance. + * + * Return the writer's associated instance, NULL on error. + */ +extern struct bt_ctf_trace *bt_ctf_writer_get_trace( + struct bt_ctf_writer *writer); + /* * bt_ctf_writer_create_stream: create a stream instance. * @@ -67,7 +73,7 @@ extern struct bt_ctf_writer *bt_ctf_writer_create(const char *path); * @param writer Writer instance. * @param stream_class Stream class to instantiate. * - * Returns an allocated writer on success, NULL on error. + * Returns an allocated stream on success, NULL on error. */ extern struct bt_ctf_stream *bt_ctf_writer_create_stream( struct bt_ctf_writer *writer, @@ -89,6 +95,23 @@ extern int bt_ctf_writer_add_environment_field(struct bt_ctf_writer *writer, const char *name, const char *value); +/* + * bt_ctf_writer_add_environment_field_int64: add an environment field to the trace. + * + * Add an environment field to the trace. The name and value parameters are + * copied. + * + * @param writer Writer instance. + * @param name Name of the environment field (will be copied). + * @param value Value of the environment field. + * + * Returns 0 on success, a negative value on error. + */ +extern int bt_ctf_writer_add_environment_field_int64( + struct bt_ctf_writer *writer, + const char *name, + int64_t value); + /* * bt_ctf_writer_add_clock: add a clock to the trace. * @@ -129,13 +152,16 @@ extern void bt_ctf_writer_flush_metadata(struct bt_ctf_writer *writer); /* * bt_ctf_writer_set_byte_order: set a field type's byte order. * - * Set the trace's byte order. Defaults to BT_CTF_BYTE_ORDER_NATIVE, - * the host machine's endianness. + * Set the trace's byte order. Defaults to the host machine's endianness. * * @param writer Writer instance. * @param byte_order Trace's byte order. * * Returns 0 on success, a negative value on error. + * + * Note: byte_order must not be BT_CTF_BYTE_ORDER_NATIVE since, according + * to the CTF specification, is defined as "the byte order described in the + * trace description". */ extern int bt_ctf_writer_set_byte_order(struct bt_ctf_writer *writer, enum bt_ctf_byte_order byte_order); @@ -144,6 +170,8 @@ extern int bt_ctf_writer_set_byte_order(struct bt_ctf_writer *writer, * bt_ctf_writer_get and bt_ctf_writer_put: increment and decrement the * writer's reference count. * + * You may also use bt_ctf_get() and bt_ctf_put() with writer objects. + * * These functions ensure that the writer won't be destroyed while it * is in use. The same number of get and put (plus one extra put to * release the initial reference done at creation) have to be done to @@ -154,8 +182,20 @@ extern int bt_ctf_writer_set_byte_order(struct bt_ctf_writer *writer, * * @param writer Writer instance. */ -extern void bt_ctf_writer_get(struct bt_ctf_writer *writer); -extern void bt_ctf_writer_put(struct bt_ctf_writer *writer); + +/* Pre-2.0 CTF writer compatibility */ +static inline +void bt_ctf_writer_get(struct bt_ctf_writer *writer) +{ + bt_ctf_object_get_ref(writer); +} + +/* Pre-2.0 CTF writer compatibility */ +static inline +void bt_ctf_writer_put(struct bt_ctf_writer *writer) +{ + bt_ctf_object_put_ref(writer); +} #ifdef __cplusplus }