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