Index: headless/lib/browser/domain_cc.template |
diff --git a/headless/lib/browser/domain_cc.template b/headless/lib/browser/domain_cc.template |
deleted file mode 100644 |
index a59ea16c62a4a80cc3a082ced64a02557f44a805..0000000000000000000000000000000000000000 |
--- a/headless/lib/browser/domain_cc.template |
+++ /dev/null |
@@ -1,150 +0,0 @@ |
-// This file is generated |
- |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "headless/public/domains/{{domain.domain | camelcase_to_hacker_style}}.h" |
- |
-#include "base/bind.h" |
- |
-namespace headless { |
- |
-namespace {{domain.domain | camelcase_to_hacker_style}} { |
- |
-ExperimentalDomain* Domain::GetExperimental() { |
- return static_cast<ExperimentalDomain*>(this); |
-} |
- |
- {% if "events" in domain %} |
-void Domain::AddObserver(Observer* observer) { |
- RegisterEventHandlersIfNeeded(); |
- observers_.AddObserver(observer); |
-} |
- |
-void Domain::RemoveObserver(Observer* observer) { |
- observers_.RemoveObserver(observer); |
-} |
- |
-void Domain::RegisterEventHandlersIfNeeded() { |
- if (event_handlers_registered_) |
- return; |
- event_handlers_registered_ = true; |
- {# Register all events in this domain. #} |
- {% for event in domain.events %} |
- dispatcher_->RegisterEventHandler( |
- "{{domain.domain}}.{{event.name}}", |
- base::Bind(&Domain::Dispatch{{event.name | to_title_case}}Event, |
- base::Unretained(this))); |
- {% endfor %} |
-} |
- {% endif %} |
- |
- {% for command in domain.commands %} |
- {# Skip redirected commands. #} |
- {% if "redirect" in command %}{% continue %}{% endif %} |
- |
- {% set class_name = 'ExperimentalDomain' if command.experimental else 'Domain' %} |
- {% set method_name = command.name | to_title_case %} |
-void {{class_name}}::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback) { |
- dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Serialize(), base::Bind(&Domain::Handle{{method_name}}Response, callback)); |
-} |
- {# Generate convenience methods that take the required parameters directly. #} |
- {% if not "parameters" in command %}{% continue %}{% endif %} |
- {# Don't generate these for experimental commands. #} |
- {% if command.experimental %}{% continue %}{% endif %} |
- |
-void {{class_name}}::{{method_name}}({##} |
- {% for parameter in command.parameters -%} |
- {% if parameter.get("optional", False) -%} |
- {% break %} |
- {% endif %} |
- {% if not loop.first %}, {% endif %} |
-{{resolve_type(parameter).pass_type}} {{parameter.name | camelcase_to_hacker_style -}} |
- {% endfor %} |
- {% if command.get("parameters", []) and not command.parameters[0].get("optional", False) %}, {% endif %}{# -#} |
- {% if command.get("returns", []) -%} |
- base::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback{##} |
- {% else -%} |
- base::Callback<void()> callback{##} |
- {% endif %}) { |
- {# Build the parameters object. #} |
- std::unique_ptr<{{method_name}}Params> params = {{method_name}}Params::Builder() |
- {% for parameter in command.parameters -%} |
- {% if parameter.get("optional", False) -%} |
- {% break %} |
- {% endif %} |
- .Set{{parameter.name | to_title_case}}(std::move({{parameter.name | camelcase_to_hacker_style}})) |
- {% endfor %} |
- .Build(); |
- {# Send the message. #} |
- {% if command.get("returns", []) -%} |
- dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Serialize(), base::Bind(&Domain::Handle{{method_name}}Response, callback)); |
- {% else %} |
- dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Serialize(), std::move(callback)); |
- {% endif %} |
-} |
- {# If the command has no return value, generate a convenience method that #} |
- {# accepts a base::Callback<void()> together with the parameters object. #} |
- {% if not command.get("returns", []) %} |
-void {{class_name}}::{{method_name}}(std::unique_ptr<{{method_name}}Params> params, base::Callback<void()> callback) { |
- dispatcher_->SendMessage("{{domain.domain}}.{{command.name}}", params->Serialize(), std::move(callback)); |
-} |
- {% endif %} |
- {% endfor %} |
- |
-{# Generate response handlers for commands that need them. #} |
-{% for command in domain.commands %} |
- {% if not "returns" in command %}{% continue %}{% endif %} |
- {% set method_name = command.name | to_title_case %} |
- |
-// static |
-void Domain::Handle{{method_name}}Response(base::Callback<void(std::unique_ptr<{{method_name}}Result>)> callback, const base::Value& response) { |
- if (callback.is_null()) |
- return; |
- ErrorReporter errors; |
- std::unique_ptr<{{method_name}}Result> result = {{method_name}}Result::Parse(response, &errors); |
- DCHECK(!errors.HasErrors()); |
- callback.Run(std::move(result)); |
-} |
-{% endfor %} |
-{% if "events" in domain %} |
- {% for event in domain.events %} |
- |
-{# Generate dispatchers which call registered observers for an event. #} |
-void Domain::Dispatch{{event.name | to_title_case}}Event(const base::Value& params) { |
- ErrorReporter errors; |
- std::unique_ptr<{{event.name | to_title_case}}Params> parsed_params({{event.name | to_title_case}}Params::Parse(params, &errors)); |
- DCHECK(!errors.HasErrors()); |
- for (ExperimentalObserver& observer : observers_) { |
- observer.On{{event.name | to_title_case}}(*parsed_params); |
- } |
-} |
- {% endfor %} |
-{% endif %} |
- |
-Domain::Domain(internal::MessageDispatcher* dispatcher) |
- : dispatcher_(dispatcher) { |
-} |
- |
-Domain::~Domain() {} |
- |
-ExperimentalDomain::ExperimentalDomain(internal::MessageDispatcher* dispatcher) |
- : Domain(dispatcher) {} |
- |
-ExperimentalDomain::~ExperimentalDomain() {} |
- |
- {% if "events" in domain %} |
-void ExperimentalDomain::AddObserver(ExperimentalObserver* observer) { |
- RegisterEventHandlersIfNeeded(); |
- observers_.AddObserver(observer); |
-} |
- |
-void ExperimentalDomain::RemoveObserver(ExperimentalObserver* observer) { |
- observers_.RemoveObserver(observer); |
-} |
- {% endif %} |
- |
-} // namespace {{domain.domain | camelcase_to_hacker_style}} |
- |
-} // namespace headless |