Move to kernel style SPDX license identifiers
[babeltrace.git] / src / bindings / python / bt2 / bt2 / packet.py
CommitLineData
0235b0db 1# SPDX-License-Identifier: MIT
81447b5b
PP
2#
3# Copyright (c) 2016-2017 Philippe Proulx <pproulx@efficios.com>
81447b5b 4
838a5a52 5from bt2 import native_bt, object
3fb99a22 6from bt2 import field as bt2_field
79935628
SM
7
8
9def _bt2_stream():
10 from bt2 import stream as bt2_stream
11
12 return bt2_stream
81447b5b
PP
13
14
f0a42b33 15class _PacketConst(object._SharedObject):
2ae9f48c
SM
16 _get_ref = staticmethod(native_bt.packet_get_ref)
17 _put_ref = staticmethod(native_bt.packet_put_ref)
f0a42b33
FD
18 _borrow_stream_ptr = staticmethod(native_bt.packet_borrow_stream_const)
19 _borrow_context_field_ptr = staticmethod(
20 native_bt.packet_borrow_context_field_const
21 )
79935628 22 _stream_pycls = property(lambda _: _bt2_stream()._StreamConst)
f0a42b33 23 _create_field_from_ptr = staticmethod(bt2_field._create_field_from_const_ptr)
2ae9f48c 24
81447b5b
PP
25 @property
26 def stream(self):
f0a42b33 27 stream_ptr = self._borrow_stream_ptr(self._ptr)
2ae9f48c 28 assert stream_ptr is not None
f0a42b33 29 return self._stream_pycls._create_from_ptr_and_get_ref(stream_ptr)
81447b5b 30
81447b5b
PP
31 @property
32 def context_field(self):
f0a42b33 33 field_ptr = self._borrow_context_field_ptr(self._ptr)
81447b5b
PP
34
35 if field_ptr is None:
36 return
37
f0a42b33 38 return self._create_field_from_ptr(
cfbd7cf3
FD
39 field_ptr, self._ptr, self._get_ref, self._put_ref
40 )
f0a42b33
FD
41
42
43class _Packet(_PacketConst):
44 _borrow_stream_ptr = staticmethod(native_bt.packet_borrow_stream)
45 _borrow_context_field_ptr = staticmethod(native_bt.packet_borrow_context_field)
79935628 46 _stream_pycls = property(lambda _: _bt2_stream()._Stream)
f0a42b33 47 _create_field_from_ptr = staticmethod(bt2_field._create_field_from_ptr)
This page took 0.068149 seconds and 4 git commands to generate.