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

Side by Side Diff: core/inspector/CodeGeneratorInstrumentation.py

Issue 22498002: Roll IDL to multivm@1329 (Closed) Base URL: https://dart.googlecode.com/svn/third_party/WebCore
Patch Set: Created 7 years, 4 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 | « core/inspector/CodeGeneratorInspectorStrings.py ('k') | core/inspector/InjectedScriptHost.idl » ('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/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2013 Google Inc. All rights reserved. 2 # Copyright (c) 2013 Google Inc. All rights reserved.
3 # 3 #
4 # Redistribution and use in source and binary forms, with or without 4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions are 5 # modification, are permitted provided that the following conditions are
6 # met: 6 # met:
7 # 7 #
8 # * Redistributions of source code must retain the above copyright 8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer. 9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above 10 # * Redistributions in binary form must reproduce the above
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
108 if (agent->${name}(${params_agent})) 108 if (agent->${name}(${params_agent}))
109 timelineAgentId = agent->id(); 109 timelineAgentId = agent->id();
110 }""") 110 }""")
111 111
112 112
113 template_instrumenting_agents_h = string.Template("""// Code generated from Insp ectorInstrumentation.idl 113 template_instrumenting_agents_h = string.Template("""// Code generated from Insp ectorInstrumentation.idl
114 114
115 #ifndef InstrumentingAgentsInl_h 115 #ifndef InstrumentingAgentsInl_h
116 #define InstrumentingAgentsInl_h 116 #define InstrumentingAgentsInl_h
117 117
118 #include <wtf/FastAllocBase.h> 118 #include "wtf/FastAllocBase.h"
119 #include <wtf/Noncopyable.h> 119 #include "wtf/Noncopyable.h"
120 #include <wtf/PassRefPtr.h> 120 #include "wtf/PassRefPtr.h"
121 #include <wtf/RefCounted.h> 121 #include "wtf/RefCounted.h"
122 122
123 namespace WebCore { 123 namespace WebCore {
124 124
125 ${forward_list} 125 ${forward_list}
126 126
127 class InstrumentingAgents : public RefCounted<InstrumentingAgents> { 127 class InstrumentingAgents : public RefCounted<InstrumentingAgents> {
128 WTF_MAKE_NONCOPYABLE(InstrumentingAgents); 128 WTF_MAKE_NONCOPYABLE(InstrumentingAgents);
129 WTF_MAKE_FAST_ALLOCATED; 129 WTF_MAKE_FAST_ALLOCATED;
130 public: 130 public:
131 static PassRefPtr<InstrumentingAgents> create() 131 static PassRefPtr<InstrumentingAgents> create()
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
462 member_list="\n".join(member_list)) 462 member_list="\n".join(member_list))
463 463
464 cpp_lines = template_instrumenting_agents_cpp.substitute( 464 cpp_lines = template_instrumenting_agents_cpp.substitute(
465 None, 465 None,
466 init_list="\n , ".join(init_list), 466 init_list="\n , ".join(init_list),
467 reset_list="\n ".join(reset_list)) 467 reset_list="\n ".join(reset_list))
468 468
469 return header_lines, cpp_lines 469 return header_lines, cpp_lines
470 470
471 471
472 def generate(input_path, output_h_dir, output_cpp_dir): 472 def generate(input_path, output_dir):
473 fin = open(input_path, "r") 473 fin = open(input_path, "r")
474 files = load_model_from_idl(fin.read()) 474 files = load_model_from_idl(fin.read())
475 fin.close() 475 fin.close()
476 476
477 cpp_includes = [] 477 cpp_includes = []
478 cpp_lines = [] 478 cpp_lines = []
479 used_agents = set() 479 used_agents = set()
480 for f in files: 480 for f in files:
481 cpp_includes.append(include_header(f.header_name)) 481 cpp_includes.append(include_header(f.header_name))
482 482
483 fout = open(output_h_dir + "/" + f.header_name + ".h", "w") 483 fout = open(output_dir + "/" + f.header_name + ".h", "w")
484 fout.write(f.generate(cpp_lines, used_agents)) 484 fout.write(f.generate(cpp_lines, used_agents))
485 fout.close() 485 fout.close()
486 486
487 for agent in used_agents: 487 for agent in used_agents:
488 cpp_includes.append(include_inspector_header(agent_class_name(agent))) 488 cpp_includes.append(include_inspector_header(agent_class_name(agent)))
489 cpp_includes.append(include_header("InstrumentingAgentsInl")) 489 cpp_includes.append(include_header("InstrumentingAgentsInl"))
490 cpp_includes.sort() 490 cpp_includes.sort()
491 491
492 instrumenting_agents_header, instrumenting_agents_cpp = generate_instrumenti ng_agents(used_agents) 492 instrumenting_agents_header, instrumenting_agents_cpp = generate_instrumenti ng_agents(used_agents)
493 493
494 fout = open(output_h_dir + "/" + "InstrumentingAgentsInl.h", "w") 494 fout = open(output_dir + "/" + "InstrumentingAgentsInl.h", "w")
495 fout.write(instrumenting_agents_header) 495 fout.write(instrumenting_agents_header)
496 fout.close() 496 fout.close()
497 497
498 fout = open(output_cpp_dir + "/InspectorInstrumentationImpl.cpp", "w") 498 fout = open(output_dir + "/InspectorInstrumentationImpl.cpp", "w")
499 fout.write(template_cpp.substitute(None, 499 fout.write(template_cpp.substitute(None,
500 includes="\n".join(cpp_includes), 500 includes="\n".join(cpp_includes),
501 extra_definitions=instrumenting_agents_cp p, 501 extra_definitions=instrumenting_agents_cp p,
502 methods="\n".join(cpp_lines))) 502 methods="\n".join(cpp_lines)))
503 fout.close() 503 fout.close()
504 504
505 505
506 cmdline_parser = optparse.OptionParser() 506 cmdline_parser = optparse.OptionParser()
507 cmdline_parser.add_option("--output_h_dir") 507 cmdline_parser.add_option("--output_dir")
508 cmdline_parser.add_option("--output_cpp_dir")
509 508
510 try: 509 try:
511 arg_options, arg_values = cmdline_parser.parse_args() 510 arg_options, arg_values = cmdline_parser.parse_args()
512 if (len(arg_values) != 1): 511 if (len(arg_values) != 1):
513 raise Exception("Exactly one plain argument expected (found %s)" % len(a rg_values)) 512 raise Exception("Exactly one plain argument expected (found %s)" % len(a rg_values))
514 input_path = arg_values[0] 513 input_path = arg_values[0]
515 output_header_dirpath = arg_options.output_h_dir 514 output_dirpath = arg_options.output_dir
516 output_cpp_dirpath = arg_options.output_cpp_dir 515 if not output_dirpath:
517 if not output_header_dirpath: 516 raise Exception("Output directory must be specified")
518 raise Exception("Output .h directory must be specified")
519 if not output_cpp_dirpath:
520 raise Exception("Output .cpp directory must be specified")
521 except Exception: 517 except Exception:
522 # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html 518 # Work with python 2 and 3 http://docs.python.org/py3k/howto/pyporting.html
523 exc = sys.exc_info()[1] 519 exc = sys.exc_info()[1]
524 sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc) 520 sys.stderr.write("Failed to parse command-line arguments: %s\n\n" % exc)
525 sys.stderr.write("Usage: <script> InspectorInstrumentation.idl --output_h_di r <output_header_dir> --output_cpp_dir <output_cpp_dir>\n") 521 sys.stderr.write("Usage: <script> --output_dir <output_dir> InspectorInstrum entation.idl\n")
526 exit(1) 522 exit(1)
527 523
528 generate(input_path, output_header_dirpath, output_cpp_dirpath) 524 generate(input_path, output_dirpath)
OLDNEW
« no previous file with comments | « core/inspector/CodeGeneratorInspectorStrings.py ('k') | core/inspector/InjectedScriptHost.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698