| Index: tools/telemetry/telemetry/core/heap/live_heap_object.py
|
| diff --git a/tools/telemetry/telemetry/core/heap/live_heap_object.py b/tools/telemetry/telemetry/core/heap/live_heap_object.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c8be3df69bd61d76e7bf9d6daff48536f8db1596
|
| --- /dev/null
|
| +++ b/tools/telemetry/telemetry/core/heap/live_heap_object.py
|
| @@ -0,0 +1,57 @@
|
| +# Copyright 2013 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +class LiveHeapObject(object):
|
| + """Data structure for representing an object in the heap snapshot.
|
| +
|
| + Attributes:
|
| + object_id: int, identifier for the object.
|
| + type_string: str, describes the type of the node.
|
| + class_name: str, describes the class of the JavaScript object
|
| + represented by this LiveHeapObject.
|
| + edges_to: [RetainingEdge], edges whose end point this LiveHeapObject is.
|
| + edges_from: [RetainingEdge], edges whose start point this LiveHeapObject is.
|
| + string: str, for string LiveHeapObjects, contains the string the
|
| + LiveHeapObject represents. Empty string for LiveHeapObjects which are
|
| + not strings.
|
| + name: str, how to refer to this LiveHeapObject.
|
| + """
|
| +
|
| + def __init__(self, object_id, type_string, class_name):
|
| + """Initializes the LiveHeapObject object.
|
| +
|
| + Args:
|
| + object_id: int, identifier for the LiveHeapObject.
|
| + type_string: str, the type of the node.
|
| + class_name: str, the class of the object this LiveHeapObject represents.
|
| + """
|
| + self.object_id = object_id
|
| + self.type_string = type_string
|
| + self.class_name = class_name
|
| + self.edges_to = []
|
| + self.edges_from = []
|
| + self.string = ''
|
| + self.name = ''
|
| +
|
| + def AddEdgeTo(self, edge):
|
| + """Associates an Edge with the LiveHeapObject (the end point).
|
| +
|
| + Args:
|
| + edge: Edge, an edge whose end point this LiveHeapObject is.
|
| + """
|
| + self.edges_to.append(edge)
|
| +
|
| + def AddEdgeFrom(self, edge):
|
| + """Associates an Edge with the LiveHeapObject (the start point).
|
| +
|
| + Args:
|
| + edge: Edge, an edge whose start point this LiveHeapObject is.
|
| + """
|
| + self.edges_from.append(edge)
|
| +
|
| + def __str__(self):
|
| + prefix = 'LiveHeapObject(' + str(self.object_id) + ' '
|
| + if self.type_string == 'object':
|
| + return prefix + self.class_name + ')'
|
| + return prefix + self.type_string + ')'
|
|
|