#
# Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com>
-from bt2 import native_bt, object, utils
-from bt2 import clock_snapshot as bt2_clock_snapshot
+from bt2 import event as bt2_event
+from bt2 import utils as bt2_utils
+from bt2 import object as bt2_object
from bt2 import packet as bt2_packet
from bt2 import stream as bt2_stream
-from bt2 import event as bt2_event
+from bt2 import native_bt
+from bt2 import clock_snapshot as bt2_clock_snapshot
def _create_from_ptr(ptr):
return _MESSAGE_TYPE_TO_CLS[msg_type]._create_from_ptr(ptr)
-class _MessageConst(object._SharedObject):
- _get_ref = staticmethod(native_bt.message_get_ref)
- _put_ref = staticmethod(native_bt.message_put_ref)
+class _MessageConst(bt2_object._SharedObject):
+ @staticmethod
+ def _get_ref(ptr):
+ native_bt.message_get_ref(ptr)
+
+ @staticmethod
+ def _put_ref(ptr):
+ native_bt.message_put_ref(ptr)
@staticmethod
def _check_has_default_clock_class(clock_class):
if clock_class is None:
raise ValueError(
- 'cannot get default clock snapshot: stream class has no default clock class'
+ "cannot get default clock snapshot: stream class has no default clock class"
)
class _StreamMessage(_StreamMessageConst, _Message):
def _default_clock_snapshot(self, raw_value):
- utils._check_uint64(raw_value)
+ bt2_utils._check_uint64(raw_value)
self._set_default_clock_snapshot(self._ptr, raw_value)
_default_clock_snapshot = property(
def _check_has_default_clock_snapshots(self):
if not self._has_default_clock_snapshots:
raise ValueError(
- 'cannot get default clock snapshot: such a message has no clock snapshots for this stream class'
+ "cannot get default clock snapshot: such a message has no clock snapshots for this stream class"
)
@property
_stream_pycls = property(lambda _: bt2_stream._Stream)
def _set_count(self, count):
- utils._check_uint64(count)
+ bt2_utils._check_uint64(count)
+
+ if count == 0:
+ raise ValueError("discarded {} count is 0".format(self._item_name))
+
self._set_count(self._ptr, count)
_count = property(fget=_DiscardedMessageConst.count.fget, fset=_set_count)
return self.stream.cls.discarded_events_have_default_clock_snapshots
-class _DiscardedEventsMessage(_DiscardedMessage):
+class _DiscardedEventsMessage(_DiscardedEventsMessageConst, _DiscardedMessage):
_borrow_stream_ptr = staticmethod(native_bt.message_discarded_events_borrow_stream)
_set_count = staticmethod(native_bt.message_discarded_events_set_count)
+ _item_name = "event"
class _DiscardedPacketsMessageConst(_DiscardedMessageConst):
class _DiscardedPacketsMessage(_DiscardedPacketsMessageConst, _DiscardedMessage):
_borrow_stream_ptr = staticmethod(native_bt.message_discarded_packets_borrow_stream)
_set_count = staticmethod(native_bt.message_discarded_packets_set_count)
+ _item_name = "packet"
_MESSAGE_TYPE_TO_CLS = {