- return iter([])
-
- def IterAllSlices(self):
- for s in self._toplevel_slices:
- yield s
- for sub_slice in s.IterEventsInThisContainerRecrusively():
- yield sub_slice
-
- def IterAllSlicesInRange(self, start, end):
- for s in self.IterAllSlices():
- if s.start >= start and s.end <= end:
- yield s
-
- def IterAllSlicesOfName(self, name):
- for s in self.IterAllSlices():
- if s.name == name:
- yield s
-
- def IterAllAsyncSlices(self):
- for async_slice in self._async_slices:
- yield async_slice
- for sub_slice in async_slice.IterEventsInThisContainerRecrusively():
- yield sub_slice
-
- def IterAllAsyncSlicesOfName(self, name):
- for s in self.IterAllAsyncSlices():
- if s.name == name:
- yield s
-
- def IterAllFlowEvents(self):
- for flow_event in self._flow_events:
- yield flow_event
-
- def IterEventsInThisContainer(self):
- return itertools.chain(
- iter(self._newly_added_slices),
- self.IterAllAsyncSlices(),
- self.IterAllFlowEvents(),
- self.IterAllSlices(),
- iter(self._samples)
- )
+ return
+ yield # pylint: disable=W0101
+
+ def IterEventsInThisContainer(self, event_type_predicate, event_predicate):
+ if event_type_predicate(slice_module.Slice):
+ for s in self._newly_added_slices:
+ if event_predicate(s):
+ yield s
+ for s in self._all_slices:
+ if event_predicate(s):
+ yield s
+
+ if event_type_predicate(async_slice_module.AsyncSlice):
+ for async_slice in self._async_slices:
+ if event_predicate(async_slice):
+ yield async_slice
+ for sub_slice in async_slice.IterEventsInThisContainerRecrusively():
+ if event_predicate(sub_slice):
+ yield sub_slice
+
+ if event_type_predicate(flow_event_module.FlowEvent):
+ for flow_event in self._flow_events:
+ if event_predicate(flow_event):
+ yield flow_event
+
+ if event_type_predicate(sample_module.Sample):
+ for sample in self._samples:
+ if event_predicate(sample):
+ yield sample