| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 | 2 |
| 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 """Server for viewing the compiled C++ code from tools/json_schema_compiler. | 6 """Server for viewing the compiled C++ code from tools/json_schema_compiler. |
| 7 """ | 7 """ |
| 8 | 8 |
| 9 import cc_generator | 9 import cc_generator |
| 10 import code | 10 import code |
| 11 import cpp_type_generator | 11 import cpp_type_generator |
| 12 import cpp_util | 12 import cpp_util |
| 13 import h_generator | 13 import h_generator |
| 14 import idl_schema | 14 import idl_schema |
| 15 import json_schema | 15 import json_schema |
| 16 import model | 16 import model |
| 17 import optparse | 17 import optparse |
| 18 import os | 18 import os |
| 19 import shlex | 19 import shlex |
| 20 import urlparse | 20 import urlparse |
| 21 from highlighters import ( | 21 from highlighters import ( |
| 22 pygments_highlighter, none_highlighter, hilite_me_highlighter) | 22 pygments_highlighter, none_highlighter, hilite_me_highlighter) |
| 23 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer | 23 from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer |
| 24 from cpp_namespace_environment import CppNamespaceEnvironment | 24 from cpp_namespace_environment import CppNamespaceEnvironment |
| 25 from schema_loader import SchemaLoader | 25 from namespace_resolver import NamespaceResolver |
| 26 | 26 |
| 27 | 27 |
| 28 class CompilerHandler(BaseHTTPRequestHandler): | 28 class CompilerHandler(BaseHTTPRequestHandler): |
| 29 """A HTTPRequestHandler that outputs the result of tools/json_schema_compiler. | 29 """A HTTPRequestHandler that outputs the result of tools/json_schema_compiler. |
| 30 """ | 30 """ |
| 31 def do_GET(self): | 31 def do_GET(self): |
| 32 parsed_url = urlparse.urlparse(self.path) | 32 parsed_url = urlparse.urlparse(self.path) |
| 33 request_path = self._GetRequestPath(parsed_url) | 33 request_path = self._GetRequestPath(parsed_url) |
| 34 | 34 |
| 35 chromium_favicon = 'http://codereview.chromium.org/static/favicon.ico' | 35 chromium_favicon = 'http://codereview.chromium.org/static/favicon.ico' |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 181 def _ShowCompiledFile(self, parsed_url, head, body): | 181 def _ShowCompiledFile(self, parsed_url, head, body): |
| 182 """Show the compiled version of a json or idl file given the path to the | 182 """Show the compiled version of a json or idl file given the path to the |
| 183 compiled file. | 183 compiled file. |
| 184 """ | 184 """ |
| 185 api_model = model.Model() | 185 api_model = model.Model() |
| 186 | 186 |
| 187 request_path = self._GetRequestPath(parsed_url) | 187 request_path = self._GetRequestPath(parsed_url) |
| 188 (file_root, file_ext) = os.path.splitext(request_path) | 188 (file_root, file_ext) = os.path.splitext(request_path) |
| 189 (filedir, filename) = os.path.split(file_root) | 189 (filedir, filename) = os.path.split(file_root) |
| 190 | 190 |
| 191 schema_loader = SchemaLoader("./", | 191 namespace_resolver = NamespaceResolver("./", |
| 192 filedir, | 192 filedir, |
| 193 self.server.include_rules, | 193 self.server.include_rules, |
| 194 self.server.cpp_namespace_pattern) | 194 self.server.cpp_namespace_pattern) |
| 195 try: | 195 try: |
| 196 # Get main file. | 196 # Get main file. |
| 197 namespace = schema_loader.ResolveNamespace(filename) | 197 namespace = namespace_resolver.ResolveNamespace(filename) |
| 198 type_generator = cpp_type_generator.CppTypeGenerator( | 198 type_generator = cpp_type_generator.CppTypeGenerator( |
| 199 api_model, | 199 api_model, |
| 200 schema_loader, | 200 namespace_resolver, |
| 201 namespace) | 201 namespace) |
| 202 | 202 |
| 203 # Generate code | 203 # Generate code |
| 204 if file_ext == '.h': | 204 if file_ext == '.h': |
| 205 cpp_code = (h_generator.HGenerator(type_generator) | 205 cpp_code = (h_generator.HGenerator(type_generator) |
| 206 .Generate(namespace).Render()) | 206 .Generate(namespace).Render()) |
| 207 elif file_ext == '.cc': | 207 elif file_ext == '.cc': |
| 208 cpp_code = (cc_generator.CCGenerator(type_generator) | 208 cpp_code = (cc_generator.CCGenerator(type_generator) |
| 209 .Generate(namespace).Render()) | 209 .Generate(namespace).Render()) |
| 210 else: | 210 else: |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 354 pass | 354 pass |
| 355 | 355 |
| 356 server = PreviewHTTPServer(('', int(opts.port)), | 356 server = PreviewHTTPServer(('', int(opts.port)), |
| 357 CompilerHandler, | 357 CompilerHandler, |
| 358 highlighters, | 358 highlighters, |
| 359 include_rules, | 359 include_rules, |
| 360 opts.namespace) | 360 opts.namespace) |
| 361 server.serve_forever() | 361 server.serve_forever() |
| 362 except KeyboardInterrupt: | 362 except KeyboardInterrupt: |
| 363 server.socket.close() | 363 server.socket.close() |
| OLD | NEW |