Index: Source/core/inspector/CodeGeneratorInspector.py |
diff --git a/Source/core/inspector/CodeGeneratorInspector.py b/Source/core/inspector/CodeGeneratorInspector.py |
index 481682bcfeca44359f3c2c621361b87cc2f1774f..cd46b6ae69a863cba53ecf54ffdc4924afe21b69 100755 |
--- a/Source/core/inspector/CodeGeneratorInspector.py |
+++ b/Source/core/inspector/CodeGeneratorInspector.py |
@@ -1808,14 +1808,23 @@ class Generator: |
if "commands" in json_domain: |
for json_command in json_domain["commands"]: |
Generator.process_command(json_command, domain_name, agent_field_name, agent_interface_name) |
+ |
+ Generator.backend_agent_interface_list.append("\n class Controller {\n") |
+ Generator.backend_agent_interface_list.append(" public:\n") |
+ Generator.backend_agent_interface_list.append(" virtual %s* getCommandHandler() = 0;\n" % agent_interface_name) |
+ Generator.backend_agent_interface_list.append(" protected:\n") |
+ Generator.backend_agent_interface_list.append(" virtual ~Controller() { }\n") |
+ Generator.backend_agent_interface_list.append(" };\n\n") |
+ agent_controller_name = agent_interface_name + "::Controller" |
+ |
Generator.backend_agent_interface_list.append("\n protected:\n") |
Generator.backend_agent_interface_list.append(" virtual ~%s() { }\n" % agent_interface_name) |
Generator.backend_agent_interface_list.append(" };\n\n") |
Generator.backend_constructor_init_list.append(" , m_%s(0)" % agent_field_name) |
- Generator.backend_virtual_setters_list.append(" virtual void registerAgent(%s* %s) = 0;" % (agent_interface_name, agent_field_name)) |
- Generator.backend_setters_list.append(" virtual void registerAgent(%s* %s) { ASSERT(!m_%s); m_%s = %s; }" % (agent_interface_name, agent_field_name, agent_field_name, agent_field_name, agent_field_name)) |
- Generator.backend_field_list.append(" %s* m_%s;" % (agent_interface_name, agent_field_name)) |
+ Generator.backend_virtual_setters_list.append(" virtual void registerAgent(%s* %s) = 0;" % (agent_controller_name, agent_field_name)) |
+ Generator.backend_setters_list.append(" virtual void registerAgent(%s* %s) { ASSERT(!m_%s); m_%s = %s; }" % (agent_controller_name, agent_field_name, agent_field_name, agent_field_name, agent_field_name)) |
+ Generator.backend_field_list.append(" %s* m_%s;" % (agent_controller_name, agent_field_name)) |
@staticmethod |
def process_event(json_event, domain_name, frontend_method_declaration_lines): |
@@ -1989,6 +1998,7 @@ class Generator: |
Generator.backend_method_implementation_list.append(Templates.backend_method.substitute(None, |
domainName=domain_name, methodName=json_command_name, |
agentField="m_" + agent_field_name, |
+ handlerClass=agent_interface_name, |
methodInCode=method_in_code, |
methodOutCode=method_out_code, |
agentCallParams="".join(agent_call_param_list), |