1a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
2a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
3a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)# found in the LICENSE file.
4a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
5a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)import json
6a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)from telemetry.timeline.timeline_data import TimelineData
8a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)
10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)class TracingTimelineData(TimelineData):
11a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def __init__(self, event_data):
12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    super(TracingTimelineData, self).__init__()
13a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    self._event_data = event_data
14a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
15a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def Serialize(self, f):
16a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    """Serializes the trace result to a file-like object"""
17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    if 'traceEvents' in self._event_data:
186e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      json.dump(self._event_data, f, indent=4)
19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)    else:
206e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      json.dump({'traceEvents' : self._event_data}, f, indent=4)
21a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)
22a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)  def EventData(self):
23a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)    return self._event_data
24