OLD | NEW |
| (Empty) |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 from telemetry.timeline import importer | |
6 from telemetry.timeline import surface_flinger_timeline_data | |
7 | |
8 class SurfaceFlingerTimelineImporter(importer.TimelineImporter): | |
9 def __init__(self, model, timeline_data): | |
10 super(SurfaceFlingerTimelineImporter, self).__init__( | |
11 model, timeline_data, import_priority=2) | |
12 self._events = timeline_data.EventData() | |
13 self._surface_flinger_process = None | |
14 | |
15 @staticmethod | |
16 def CanImport(timeline_data): | |
17 if isinstance(timeline_data, | |
18 surface_flinger_timeline_data.SurfaceFlingerTimelineData): | |
19 return True | |
20 | |
21 return False | |
22 | |
23 def ImportEvents(self): | |
24 for event in self._events: | |
25 self._surface_flinger_process = self._model.GetOrCreateProcess( | |
26 event['pid']) | |
27 self._surface_flinger_process.name = 'SurfaceFlinger' | |
28 thread = self._surface_flinger_process.GetOrCreateThread(event['tid']) | |
29 thread.BeginSlice(event['cat'], | |
30 event['name'], | |
31 event['ts'], | |
32 args=event.get('args')) | |
33 thread.EndSlice(event['ts']) | |
34 | |
35 def FinalizeImport(self): | |
36 '''Called by the Model after all other importers have imported their | |
37 events.''' | |
38 self._model.UpdateBounds() | |
39 self._model.surface_flinger_process = self._surface_flinger_process | |
OLD | NEW |