lib: replace trace is_static with destruction listeners
[babeltrace.git] / include / babeltrace / trace-ir / trace-internal.h
index 8e8bfa0a7b3dd66ed44e4db3d33d01ff07488dc0..16076673e09178fd5d8185281a1a57b91d14c071 100644 (file)
@@ -2,10 +2,9 @@
 #define BABELTRACE_TRACE_IR_TRACE_INTERNAL_H
 
 /*
+ * Copyright 2017-2018 Philippe Proulx <pproulx@efficios.com>
  * Copyright 2014 Jérémie Galarneau <jeremie.galarneau@efficios.com>
  *
- * Author: Jérémie Galarneau <jeremie.galarneau@efficios.com>
- *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  */
 
 #include <babeltrace/assert-pre-internal.h>
+#include <babeltrace/trace-ir/trace-class-internal.h>
 #include <babeltrace/trace-ir/trace.h>
 #include <babeltrace/trace-ir/stream-class-internal.h>
-#include <babeltrace/trace-ir/field-classes.h>
-#include <babeltrace/trace-ir/fields.h>
+#include <babeltrace/trace-ir/field-class.h>
+#include <babeltrace/trace-ir/field.h>
 #include <babeltrace/trace-ir/attributes-internal.h>
 #include <babeltrace/trace-ir/clock-class-internal.h>
 #include <babeltrace/object-internal.h>
 #include <babeltrace/object-pool-internal.h>
 #include <babeltrace/babeltrace-internal.h>
-#include <babeltrace/values.h>
+#include <babeltrace/value.h>
 #include <babeltrace/types.h>
 #include <glib.h>
 #include <sys/types.h>
@@ -44,6 +44,9 @@
 struct bt_trace {
        struct bt_object base;
 
+       /* Owned by this */
+       struct bt_trace_class *class;
+
        struct {
                GString *str;
 
@@ -51,42 +54,22 @@ struct bt_trace {
                const char *value;
        } name;
 
-       struct {
-               uint8_t uuid[BABELTRACE_UUID_LEN];
-
-               /* NULL or `uuid` above */
-               bt_uuid value;
-       } uuid;
-
-       struct bt_private_value *environment;
-
-       /* Array of `struct bt_stream_class *` */
-       GPtrArray *stream_classes;
-
        /* Array of `struct bt_stream *` */
        GPtrArray *streams;
 
        /*
-        * Stream class (weak) to number of instantiated streams, used
-        * to automatically assign stream IDs per stream class.
+        * Stream class (weak, owned by owned trace class) to number of
+        * instantiated streams, used to automatically assign stream IDs
+        * per stream class within this trace.
         */
        GHashTable *stream_classes_stream_count;
 
-       struct bt_field_class *packet_header_fc;
-       bool assigns_automatic_stream_class_id;
-
-       GArray *is_static_listeners;
-       bool is_static;
-       bool in_remove_listener;
-
-       /* Pool of `struct bt_field_wrapper *` */
-       struct bt_object_pool packet_header_field_pool;
-
+       GArray *destruction_listeners;
        bool frozen;
 };
 
 BT_HIDDEN
-void _bt_trace_freeze(struct bt_trace *trace);
+void _bt_trace_freeze(const struct bt_trace *trace);
 
 #ifdef BT_DEV_MODE
 # define bt_trace_freeze               _bt_trace_freeze
@@ -98,7 +81,7 @@ BT_HIDDEN
 void bt_trace_add_stream(struct bt_trace *trace, struct bt_stream *stream);
 
 BT_HIDDEN
-uint64_t bt_trace_get_automatic_stream_id(struct bt_trace *trace,
-               struct bt_stream_class *stream_class);
+uint64_t bt_trace_get_automatic_stream_id(const struct bt_trace *trace,
+               const struct bt_stream_class *stream_class);
 
 #endif /* BABELTRACE_TRACE_IR_TRACE_INTERNAL_H */
This page took 0.029621 seconds and 4 git commands to generate.