#define BABELTRACE_CTF_WRITER_WRITER_H
/*
- * BabelTrace - CTF Writer: Writer
- *
* Copyright 2013, 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
*
* Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
* http://www.efficios.com/ctf
*/
-#include <babeltrace/ctf-ir/event-types.h>
+#include <babeltrace/ctf-writer/field-types.h>
+#include <babeltrace/ctf-writer/stream-class.h>
+#include <babeltrace/ctf-writer/stream.h>
+#include <babeltrace/ctf-writer/trace.h>
#ifdef __cplusplus
extern "C" {
*/
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.
*
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.
*
/*
* 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);
* 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
*
* @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_object_get_ref(writer);
+}
+
+/* Pre-2.0 CTF writer compatibility */
+static inline
+void bt_ctf_writer_put(struct bt_ctf_writer *writer)
+{
+ bt_object_put_ref(writer);
+}
#ifdef __cplusplus
}