Commit | Line | Data |
---|---|---|
0235b0db | 1 | # SPDX-License-Identifier: MIT |
79c39ab9 PP |
2 | # |
3 | # Copyright (c) 2017 Philippe Proulx <pproulx@efficios.com> | |
79c39ab9 PP |
4 | |
5 | from bt2 import native_bt, object, utils | |
79c39ab9 | 6 | import numbers |
3fb99a22 | 7 | from bt2 import clock_class as bt2_clock_class |
be7bbff9 | 8 | import functools |
79c39ab9 PP |
9 | |
10 | ||
c6af194f | 11 | @functools.total_ordering |
eddea575 | 12 | class _ClockSnapshotConst(object._UniqueObject): |
79c39ab9 PP |
13 | @property |
14 | def clock_class(self): | |
be7bbff9 SM |
15 | cc_ptr = native_bt.clock_snapshot_borrow_clock_class_const(self._ptr) |
16 | assert cc_ptr is not None | |
eddea575 | 17 | return bt2_clock_class._ClockClassConst._create_from_ptr_and_get_ref(cc_ptr) |
79c39ab9 PP |
18 | |
19 | @property | |
2ae9f48c SM |
20 | def value(self): |
21 | return native_bt.clock_snapshot_get_value(self._ptr) | |
79c39ab9 PP |
22 | |
23 | @property | |
be7bbff9 | 24 | def ns_from_origin(self): |
d24d5663 | 25 | status, ns = native_bt.clock_snapshot_get_ns_from_origin(self._ptr) |
cfbd7cf3 FD |
26 | utils._handle_func_status( |
27 | status, "cannot get clock snapshot's nanoseconds from origin" | |
28 | ) | |
be7bbff9 | 29 | return ns |
79c39ab9 | 30 | |
be7bbff9 SM |
31 | def __eq__(self, other): |
32 | if not isinstance(other, numbers.Integral): | |
33 | return NotImplemented | |
79c39ab9 | 34 | |
be7bbff9 | 35 | return self.value == int(other) |
79c39ab9 | 36 | |
be7bbff9 SM |
37 | def __lt__(self, other): |
38 | if not isinstance(other, numbers.Integral): | |
39 | return NotImplemented | |
79c39ab9 | 40 | |
be7bbff9 | 41 | return self.value < int(other) |
9ec609ec SM |
42 | |
43 | ||
c6af194f | 44 | class _UnknownClockSnapshot: |
9ec609ec | 45 | pass |