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

Side by Side Diff: client/dom/scripts/database.py

Issue 9403004: Wrapperless dart:html generator (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Final version to check in. changes generator script but doesn't check in an active version of the … Created 8 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « client/dom/scripts/dartgenerator_test.py ('k') | client/dom/scripts/generator.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
3 # for details. All rights reserved. Use of this source code is governed by a 3 # for details. All rights reserved. Use of this source code is governed by a
4 # BSD-style license that can be found in the LICENSE file. 4 # BSD-style license that can be found in the LICENSE file.
5 5
6 """Module to manage IDL files.""" 6 """Module to manage IDL files."""
7 7
8 import copy 8 import copy
9 import pickle
9 import logging 10 import logging
10 import os 11 import os
11 import os.path 12 import os.path
12 import shutil 13 import shutil
13 import idlnode 14 import idlnode
14 import idlparser 15 import idlparser
15 import idlrenderer 16 import idlrenderer
16 17
17 _logger = logging.getLogger('database') 18 _logger = logging.getLogger('database')
18 19
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 interface = idl_file.interfaces[0] 113 interface = idl_file.interfaces[0]
113 self._all_interfaces[interface_name] = interface 114 self._all_interfaces[interface_name] = interface
114 return interface 115 return interface
115 116
116 def Load(self): 117 def Load(self):
117 """Loads all interfaces into memory. 118 """Loads all interfaces into memory.
118 """ 119 """
119 # FIXME: Speed this up by multi-threading. 120 # FIXME: Speed this up by multi-threading.
120 for (interface_name) in self._ScanForInterfaces(): 121 for (interface_name) in self._ScanForInterfaces():
121 self._LoadInterfaceFile(interface_name) 122 self._LoadInterfaceFile(interface_name)
123 self.Cache()
124
125 def Cache(self):
126 """Serialize the database using pickle for faster startup in the future
127 """
128 output_file = open('../database/cache.pickle', 'wb')
129 pickle.dump(self._all_interfaces, output_file)
130 pickle.dump(self._interfaces_to_delete, output_file)
131
132 def LoadFromCache(self):
133 """Deserialize the database using pickle for fast startup
134 """
135 input_file = open('../database/cache.pickle', 'rb')
136 self._all_interfaces = pickle.load(input_file)
137 self._interfaces_to_delete = pickle.load(input_file)
122 138
123 def Save(self): 139 def Save(self):
124 """Saves all in-memory interfaces into files.""" 140 """Saves all in-memory interfaces into files."""
125 for interface in self._all_interfaces.values(): 141 for interface in self._all_interfaces.values():
126 self._SaveInterfaceFile(interface) 142 self._SaveInterfaceFile(interface)
127 for interface_name in self._interfaces_to_delete: 143 for interface_name in self._interfaces_to_delete:
128 self._DeleteInterfaceFile(interface_name) 144 self._DeleteInterfaceFile(interface_name)
129 145
130 def _SaveInterfaceFile(self, interface): 146 def _SaveInterfaceFile(self, interface):
131 """Saves an interface into the database. 147 """Saves an interface into the database.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 raise RuntimeError('Interface %s not found' % interface_name) 213 raise RuntimeError('Interface %s not found' % interface_name)
198 self._interfaces_to_delete.append(interface_name) 214 self._interfaces_to_delete.append(interface_name)
199 del self._all_interfaces[interface_name] 215 del self._all_interfaces[interface_name]
200 216
201 def _DeleteInterfaceFile(self, interface_name): 217 def _DeleteInterfaceFile(self, interface_name):
202 """Actual file deletion""" 218 """Actual file deletion"""
203 file_path = self._FilePath(interface_name) 219 file_path = self._FilePath(interface_name)
204 if os.path.exists(file_path): 220 if os.path.exists(file_path):
205 _logger.debug('deleting %s' % file_path) 221 _logger.debug('deleting %s' % file_path)
206 os.remove(file_path) 222 os.remove(file_path)
OLDNEW
« no previous file with comments | « client/dom/scripts/dartgenerator_test.py ('k') | client/dom/scripts/generator.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698