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

Side by Side Diff: tools/android/loading/loading_trace_database.py

Issue 1969373002: tools/android/loading Move LoadingTraceDatabase under cloud/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@report
Patch Set: Rebase Created 4 years, 7 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 2016 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 """Represents a database of on-disk traces."""
6
7 import json
8
9
10 class LoadingTraceDatabase(object):
11 def __init__(self, traces_dict):
12 """traces_dict is a dictionary mapping filenames of traces to metadata
13 about those traces."""
14 self._traces_dict = traces_dict
15
16 def SetTrace(self, filename, trace_dict):
17 """Sets a mapping from |filename| to |trace_dict| into the database.
18 If there is an existing mapping for filename, it is replaced.
19 """
20 self._traces_dict[filename] = trace_dict
21
22 def GetTraceFilesForURL(self, url):
23 """Given a URL, returns the set of filenames of traces that were generated
24 for this URL."""
25 trace_files = [f for f in self._traces_dict.keys()
26 if self._traces_dict[f]["url"] == url]
27 return trace_files
28
29 def ToJsonDict(self):
30 """Returns a dict representing this instance."""
31 return self._traces_dict
32
33 def ToJsonString(self):
34 """Returns a string representing this instance."""
35 return json.dumps(self._traces_dict, indent=2)
36
37 def ToJsonFile(self, json_path):
38 """Saves a json file representing this instance."""
39 json_dict = self.ToJsonDict()
40 with open(json_path, 'w') as output_file:
41 json.dump(json_dict, output_file, indent=2)
42
43 @classmethod
44 def FromJsonDict(cls, json_dict):
45 """Returns an instance from a dict returned by ToJsonDict()."""
46 return LoadingTraceDatabase(json_dict)
47
48 @classmethod
49 def FromJsonString(cls, json_string):
50 """Returns an instance from a string returned by ToJsonString()."""
51 return LoadingTraceDatabase(json.loads(json_string))
52
53 @classmethod
54 def FromJsonFile(cls, json_path):
55 """Returns an instance from a json file saved by ToJsonFile()."""
56 with open(json_path) as input_file:
57 return cls.FromJsonDict(json.load(input_file))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698