X-Git-Url: http://git.efficios.com/?p=babeltrace.git;a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fstream_class.py;h=cf34cf4c05f285808619724aed60f2d43f89394d;hp=c22e05a584c6cec260da0fda4634fc039e50ad59;hb=26fc5aedf;hpb=bfb5625df591dcd384f50af3a93c5904ea6b7fcd diff --git a/src/bindings/python/bt2/bt2/stream_class.py b/src/bindings/python/bt2/bt2/stream_class.py index c22e05a5..cf34cf4c 100644 --- a/src/bindings/python/bt2/bt2/stream_class.py +++ b/src/bindings/python/bt2/bt2/stream_class.py @@ -129,25 +129,30 @@ class _StreamClass(object._SharedObject, collections.abc.Mapping): _assigns_automatic_stream_id = property(fset=_assigns_automatic_stream_id) + @property + def supports_packets(self): + return native_bt.stream_class_supports_packets(self._ptr) + @property def packets_have_beginning_default_clock_snapshot(self): return native_bt.stream_class_packets_have_beginning_default_clock_snapshot(self._ptr) - def _packets_have_beginning_default_clock_snapshot(self, value): - utils._check_bool(value) - native_bt.stream_class_set_packets_have_beginning_default_clock_snapshot(self._ptr, value) - - _packets_have_beginning_default_clock_snapshot = property(fset=_packets_have_beginning_default_clock_snapshot) - @property def packets_have_end_default_clock_snapshot(self): return native_bt.stream_class_packets_have_end_default_clock_snapshot(self._ptr) - def _packets_have_end_default_clock_snapshot(self, value): - utils._check_bool(value) - native_bt.stream_class_set_packets_have_end_default_clock_snapshot(self._ptr, value) + def _set_supports_packets(self, supports, with_begin_cs=False, with_end_cs=False): + utils._check_bool(supports) + utils._check_bool(with_begin_cs) + utils._check_bool(with_end_cs) + + if not supports and (with_begin_cs or with_end_cs): + raise ValueError('cannot not support packets, but have default clock snapshots') + + if not supports and self.packet_context_field_class is not None: + raise ValueError('stream class already has a packet context field class') - _packets_have_end_default_clock_snapshot = property(fset=_packets_have_end_default_clock_snapshot) + native_bt.stream_class_set_supports_packets(self._ptr, supports, with_begin_cs, with_end_cs) @property def supports_discarded_events(self): @@ -174,6 +179,9 @@ class _StreamClass(object._SharedObject, collections.abc.Mapping): utils._check_bool(supports) utils._check_bool(with_cs) + if supports and not self.supports_packets: + raise ValueError('cannot support discarded packets, but not support packets') + if not supports and with_cs: raise ValueError('cannot not support discarded packets, but have default clock snapshots') @@ -211,6 +219,10 @@ class _StreamClass(object._SharedObject, collections.abc.Mapping): if packet_context_field_class is not None: utils._check_type(packet_context_field_class, bt2.field_class._StructureFieldClass) + + if not self.supports_packets: + raise ValueError('stream class does not support packets') + status = native_bt.stream_class_set_packet_context_field_class(self._ptr, packet_context_field_class._ptr) utils._handle_func_status(status,