Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: tools/telemetry/telemetry/core/timeline/process.py

Issue 332213003: Move telemetry/core/timeline and timeline_data to telemetry/timeline. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 # Copyright 2013 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 import telemetry.core.timeline.event_container as event_container
6 import telemetry.core.timeline.counter as tracing_counter
7 import telemetry.core.timeline.thread as tracing_thread
8
9 class Process(event_container.TimelineEventContainer):
10 ''' The Process represents a single userland process in the trace.
11 '''
12 def __init__(self, parent, pid):
13 super(Process, self).__init__('process %s' % pid, parent)
14 self.pid = pid
15 self._threads = {}
16 self._counters = {}
17
18 @property
19 def threads(self):
20 return self._threads
21
22 @property
23 def counters(self):
24 return self._counters
25
26 def IterChildContainers(self):
27 for thread in self._threads.itervalues():
28 yield thread
29 for counter in self._counters.itervalues():
30 yield counter
31
32 def IterAllSlicesOfName(self, name):
33 for thread in self._threads.itervalues():
34 for s in thread.IterAllSlicesOfName(name):
35 yield s
36
37 def IterAllAsyncSlicesOfName(self, name):
38 for thread in self._threads.itervalues():
39 for s in thread.IterAllAsyncSlicesOfName(name):
40 yield s
41
42 def IterEventsInThisContainer(self):
43 return
44 yield # pylint: disable=W0101
45
46 def GetOrCreateThread(self, tid):
47 thread = self.threads.get(tid, None)
48 if thread:
49 return thread
50 thread = tracing_thread.Thread(self, tid)
51 self._threads[tid] = thread
52 return thread
53
54 def GetCounter(self, category, name):
55 counter_id = category + '.' + name
56 if counter_id in self.counters:
57 return self.counters[counter_id]
58 raise ValueError(
59 'Counter %s not found in process with id %s.' % (counter_id,
60 self.pid))
61 def GetOrCreateCounter(self, category, name):
62 try:
63 return self.GetCounter(category, name)
64 except ValueError:
65 ctr = tracing_counter.Counter(self, category, name)
66 self._counters[ctr.full_name] = ctr
67 return ctr
68
69 def AutoCloseOpenSlices(self, max_timestamp, thread_time_bounds):
70 for thread in self._threads.itervalues():
71 thread.AutoCloseOpenSlices(max_timestamp, thread_time_bounds[thread].max)
72
73 def FinalizeImport(self):
74 for thread in self._threads.itervalues():
75 thread.FinalizeImport()
76 for counter in self._counters.itervalues():
77 counter.FinalizeImport()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698