* SOFTWARE.
*/
-#include <babeltrace/ctf-writer/ref-internal.h>
#include <babeltrace/ctf-ir/trace.h>
-#include <babeltrace/ctf-ir/event-types.h>
-#include <babeltrace/ctf-ir/event-fields.h>
+#include <babeltrace/ctf-ir/field-types.h>
+#include <babeltrace/ctf-ir/fields.h>
+#include <babeltrace/object-internal.h>
#include <babeltrace/babeltrace-internal.h>
+#include <babeltrace/values.h>
#include <glib.h>
#include <sys/types.h>
#include <uuid/uuid.h>
};
struct bt_ctf_trace {
- struct bt_ctf_ref ref_count;
+ struct bt_object base;
int frozen;
uuid_t uuid;
- int byte_order;
- GPtrArray *environment; /* Array of pointers to environment_variable */
+ int byte_order; /* A value defined in Babeltrace's "endian.h" */
+ struct bt_value *environment;
GPtrArray *clocks; /* Array of pointers to bt_ctf_clock */
GPtrArray *stream_classes; /* Array of ptrs to bt_ctf_stream_class */
GPtrArray *streams; /* Array of ptrs to bt_ctf_stream */
- struct bt_ctf_field_type *trace_packet_header_type;
- struct bt_ctf_field *trace_packet_header;
+ struct bt_ctf_field_type *packet_header_type;
uint64_t next_stream_id;
-};
+ int is_created_by_writer;
-struct environment_variable {
- GString *name, *value;
+ /*
+ * This flag indicates if the trace is valid. A valid
+ * trace is _always_ frozen.
+ */
+ int valid;
+ GPtrArray *listeners; /* Array of struct listener_wrapper */
};
struct metadata_context {
unsigned int current_indentation_level;
};
-/* Checks that the string does not contain a reserved keyword */
-BT_HIDDEN
-int validate_identifier(const char *string);
-
BT_HIDDEN
const char *get_byte_order_string(int byte_order);
BT_HIDDEN
struct bt_ctf_field_type *get_field_type(enum field_type_alias alias);
+BT_HIDDEN
+int bt_ctf_trace_element_modification(struct bt_ctf_ir_element *element,
+ void *trace_ptr);
+
#endif /* BABELTRACE_CTF_IR_TRACE_INTERNAL_H */