X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Fbindings%2Fpython%2Fbt2%2Fbt2%2Fmessage.py;h=c56f696190c3c7cb1ed2bf59ccb87b3fd9df9115;hb=HEAD;hp=80c5db432795c4bf2003919f69b2d6adeb5daf88;hpb=0235b0db7de5bcacdb3650c92461f2ce5eb2143d;p=babeltrace.git diff --git a/src/bindings/python/bt2/bt2/message.py b/src/bindings/python/bt2/bt2/message.py index 80c5db43..c56f6961 100644 --- a/src/bindings/python/bt2/bt2/message.py +++ b/src/bindings/python/bt2/bt2/message.py @@ -2,11 +2,13 @@ # # Copyright (c) 2017 Philippe Proulx -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): @@ -14,15 +16,20 @@ 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" ) @@ -134,7 +141,7 @@ class _StreamMessageConst(_MessageConst, _MessageWithDefaultClockSnapshot): 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( @@ -212,7 +219,7 @@ class _DiscardedMessageConst(_MessageConst, _MessageWithDefaultClockSnapshot): 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 @@ -232,7 +239,11 @@ class _DiscardedMessage(_DiscardedMessageConst, _Message): _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) @@ -255,9 +266,10 @@ class _DiscardedEventsMessageConst(_DiscardedMessageConst): 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): @@ -280,6 +292,7 @@ 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 = {