- def clock_values(self):
- return _InactivityMessageClockValues(self)
-
- def _get_clock_values(self):
- clock_values = {}
-
- for clock_class, clock_value in self.clock_values.items():
- if clock_value is None:
- continue
-
- clock_values[clock_class] = clock_value
-
- return clock_values
-
- def __eq__(self, other):
- if type(other) is not type(self):
- return False
-
- if self.addr == other.addr:
- return True
-
- self_props = (
- self.clock_class_priority_map,
- self._get_clock_values(),
- )
- other_props = (
- other.clock_class_priority_map,
- other._get_clock_values(),
- )
- return self_props == other_props
-
- def __copy__(self):
- cpy = InactivityMessage(self.clock_class_priority_map)
-
- for clock_class, clock_value in self.clock_values.items():
- if clock_value is None:
- continue
-
- cpy.clock_values.add(clock_value)
-
- return cpy
-
- def __deepcopy__(self, memo):
- cc_prio_map_cpy = copy.deepcopy(self.clock_class_priority_map)
- cpy = InactivityMessage(cc_prio_map_cpy)
-
- # copy clock values
- for orig_clock_class in self.clock_class_priority_map:
- orig_clock_value = self.clock_value(orig_clock_class)
-
- if orig_clock_value is None:
- continue
-
- # find equivalent, copied clock class in CC priority map copy
- for cpy_clock_class in cc_prio_map_cpy:
- if cpy_clock_class == orig_clock_class:
- break
-
- # create copy of clock value from copied clock class
- clock_value_cpy = cpy_clock_class(orig_clock_value.cycles)
-
- # set copied clock value in message copy
- cpy.clock_values.add(clock_value_cpy)
-
- memo[id(self)] = cpy
- return cpy