- @property
- def streams(self):
- return _TraceStreams(self)
-
- @property
- def packet_header_field_class(self):
- fc_ptr = native_bt.trace_get_packet_header_type(self._ptr)
-
- if fc_ptr is None:
- return
-
- return bt2.field_class._create_from_ptr(fc_ptr)
-
- @packet_header_field_class.setter
- def packet_header_field_class(self, packet_header_field_class):
- packet_header_field_class_ptr = None
-
- if packet_header_field_class is not None:
- utils._check_type(packet_header_field_class, bt2.field_class._FieldClass)
- packet_header_field_class_ptr = packet_header_field_class._ptr
-
- ret = native_bt.trace_set_packet_header_type(self._ptr,
- packet_header_field_class_ptr)
- utils._handle_ret(ret, "cannot set trace class object's packet header field class")
-
- def __eq__(self, other):
- if type(other) is not type(self):
- # not comparing apples to apples
- return False
-
- if self.addr == other.addr:
- return True
-
- self_stream_classes = list(self.values())
- self_clock_classes = list(self.clock_classes.values())
- self_env = {key: val for key, val in self.env.items()}
- other_stream_classes = list(other.values())
- other_clock_classes = list(other.clock_classes.values())
- other_env = {key: val for key, val in other.env.items()}
- self_props = (
- self_stream_classes,
- self_clock_classes,
- self_env,
- self.name,
- self.native_byte_order,
- self.packet_header_field_class,
- )
- other_props = (
- other_stream_classes,
- other_clock_classes,
- other_env,
- other.name,
- other.native_byte_order,
- other.packet_header_field_class,
- )
- return self_props == other_props
-
- def _copy(self, gen_copy_func, sc_copy_func):
- cpy = Trace()
-
- if self.name is not None:
- cpy.name = self.name
-
- cpy.packet_header_field_class = gen_copy_func(self.packet_header_field_class)
-
- for key, val in self.env.items():
- cpy.env[key] = gen_copy_func(val)