| Index: headless/lib/browser/devtools_api/domain_types_h.template
|
| diff --git a/headless/lib/browser/types_h.template b/headless/lib/browser/devtools_api/domain_types_h.template
|
| similarity index 65%
|
| rename from headless/lib/browser/types_h.template
|
| rename to headless/lib/browser/devtools_api/domain_types_h.template
|
| index 84b09cbeb24b17bafd7c81cfa95b7c1b6202d82f..f53f8ae1a529a3dbe3d02dbeecc5817fec56c5ce 100644
|
| --- a/headless/lib/browser/types_h.template
|
| +++ b/headless/lib/browser/devtools_api/domain_types_h.template
|
| @@ -4,11 +4,14 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#ifndef HEADLESS_PUBLIC_DOMAINS_TYPES_H_
|
| -#define HEADLESS_PUBLIC_DOMAINS_TYPES_H_
|
| +#ifndef HEADLESS_PUBLIC_DEVTOOLS_DOMAINS_TYPES_{{domain.domain | camelcase_to_hacker_style | upper}}_H_
|
| +#define HEADLESS_PUBLIC_DEVTOOLS_DOMAINS_TYPES_{{domain.domain | camelcase_to_hacker_style | upper}}_H_
|
|
|
| #include "base/optional.h"
|
| #include "base/values.h"
|
| +{% for domain_name in domain.dependencies %}
|
| +#include "headless/public/devtools/internal/types_forward_declaration_{{domain_name | camelcase_to_hacker_style}}.h"
|
| +{% endfor %}
|
| #include "headless/public/headless_export.h"
|
| #include "headless/public/util/error_reporter.h"
|
|
|
| @@ -16,67 +19,31 @@
|
|
|
| namespace headless {
|
|
|
| -// ------------- Forward declarations and typedefs.
|
| -
|
| -{% for domain in api.domains %}
|
| -
|
| -namespace {{domain.domain | camelcase_to_hacker_style}} {
|
| - {% for type in domain.types %}
|
| - {% if type.type == "object" %}
|
| - {% if "properties" in type %}
|
| -class {{type.id}};
|
| - {% else %}
|
| -using {{type.id}} = base::Value;
|
| - {% endif %}
|
| - {% endif %}
|
| - {% endfor %}
|
| -} // namespace {{domain.domain}}
|
| -{% endfor %}
|
| -
|
| -{% for domain in api.domains %}
|
| namespace {{domain.domain | camelcase_to_hacker_style}} {
|
| - {% for type in domain.types %}
|
| - {% if "enum" in type %}
|
| -enum class {{type.id}} {
|
| - {% for literal in type.enum %}
|
| - {{ literal | sanitize_literal | dash_to_camelcase | camelcase_to_hacker_style | upper }}{{',' if not loop.last}}
|
| - {% endfor %}
|
| -};
|
| -
|
| - {% endif %}
|
| - {% endfor %}
|
| -} // namespace {{domain.domain | camelcase_to_hacker_style}}
|
| -
|
| -{% endfor %}
|
| -
|
| -// ------------- Type and builder declarations.
|
| -{% for domain in api.domains %}
|
| +{% for type in domain.types %}
|
| + {% if not (type.type == "object") or not ("properties" in type) %}{% continue %}{% endif %}
|
|
|
| -namespace {{domain.domain | camelcase_to_hacker_style}} {
|
| - {% for type in domain.types %}
|
| - {% if not (type.type == "object") or not ("properties" in type) %}{% continue %}{% endif %}
|
| -
|
| - {% if type.description %}
|
| + {% if type.description %}
|
| // {{type.description}}
|
| - {% endif %}
|
| + {% endif %}
|
| class HEADLESS_EXPORT {{type.id}} {
|
| public:
|
| static {{resolve_type(type).pass_type}} Parse(const base::Value& value, ErrorReporter* errors);
|
| ~{{type.id}}() { }
|
| - {% for property in type.properties %}
|
| + {% for property in type.properties %}
|
|
|
| - {% if property.description %}
|
| + {% if property.description %}
|
| // {{property.description}}
|
| - {% endif %}
|
| - {% if property.optional %}
|
| + {% endif %}
|
| + {% if property.optional %}
|
| bool Has{{property.name | to_title_case}}() const { return !!{{property.name | camelcase_to_hacker_style}}_; }
|
| {{resolve_type(property).raw_return_type}} Get{{property.name | to_title_case}}() const { DCHECK(Has{{property.name | to_title_case}}()); return {{resolve_type(property).to_raw_return_type % ("%s_.value()" % property.name | camelcase_to_hacker_style)}}; }
|
| void Set{{property.name | to_title_case}}({{resolve_type(property).pass_type}} value) { {{property.name | camelcase_to_hacker_style}}_ = {{resolve_type(property).to_pass_type % 'value'}}; }
|
| - {% else %}
|
| + {% else %}
|
| {{resolve_type(property).raw_return_type}} Get{{property.name | to_title_case}}() const { return {{resolve_type(property).to_raw_return_type % ("%s_" % property.name | camelcase_to_hacker_style)}}; }
|
| void Set{{property.name | to_title_case}}({{resolve_type(property).pass_type}} value) { {{property.name | camelcase_to_hacker_style}}_ = {{resolve_type(property).to_pass_type % 'value'}}; }
|
| - {% endif %}
|
| - {% endfor %}
|
| + {% endif %}
|
| + {% endfor %}
|
|
|
| std::unique_ptr<base::Value> Serialize() const;
|
| {{resolve_type(type).pass_type}} Clone() const;
|
| @@ -86,34 +53,34 @@ class HEADLESS_EXPORT {{type.id}} {
|
| public:
|
| enum {
|
| kNoFieldsSet = 0,
|
| - {% set count = 0 %}
|
| - {% for property in type.properties %}
|
| - {% if not(property.optional) %}
|
| - {% set count = count + 1 %}
|
| + {% set count = 0 %}
|
| + {% for property in type.properties %}
|
| + {% if not(property.optional) %}
|
| + {% set count = count + 1 %}
|
| k{{property.name | to_title_case}}Set = 1 << {{count}},
|
| - {% endif %}
|
| - {% endfor %}
|
| + {% endif %}
|
| + {% endfor %}
|
| kAllRequiredFieldsSet = (
|
| - {%- for property in type.properties %}
|
| - {% if not(property.optional) %}k{{property.name | to_title_case}}Set | {%endif %}
|
| - {% endfor %}0)
|
| + {%- for property in type.properties %}
|
| + {% if not(property.optional) %}k{{property.name | to_title_case}}Set | {%endif %}
|
| + {% endfor %}0)
|
| };
|
|
|
| - {% for property in type.properties %}
|
| - {% if property.optional %}
|
| + {% for property in type.properties %}
|
| + {% if property.optional %}
|
| {{type.id}}Builder<STATE>& Set{{property.name | to_title_case}}({{resolve_type(property).pass_type}} value) {
|
| result_->Set{{property.name | to_title_case}}({{resolve_type(property).to_pass_type % 'value'}});
|
| return *this;
|
| }
|
| - {% else %}
|
| + {% else %}
|
| {{type.id}}Builder<STATE | k{{property.name | to_title_case}}Set>& Set{{property.name | to_title_case}}({{resolve_type(property).pass_type}} value) {
|
| static_assert(!(STATE & k{{property.name | to_title_case}}Set), "property {{property.name}} should not have already been set");
|
| result_->Set{{property.name | to_title_case}}({{resolve_type(property).to_pass_type % 'value'}});
|
| return CastState<k{{property.name | to_title_case}}Set>();
|
| }
|
| - {% endif %}
|
| + {% endif %}
|
|
|
| - {% endfor %}
|
| + {% endfor %}
|
| {{resolve_type(type).pass_type}} Build() {
|
| static_assert(STATE == kAllRequiredFieldsSet, "all required fields should have been set");
|
| return std::move(result_);
|
| @@ -137,22 +104,21 @@ class HEADLESS_EXPORT {{type.id}} {
|
| private:
|
| {{type.id}}() { }
|
|
|
| - {% for property in type.properties %}
|
| - {% if property.optional %}
|
| + {% for property in type.properties %}
|
| + {% if property.optional %}
|
| base::Optional<{{resolve_type(property).type}}> {{property.name | camelcase_to_hacker_style}}_;
|
| - {% else %}
|
| + {% else %}
|
| {{resolve_type(property).type}} {{property.name | camelcase_to_hacker_style}}_;
|
| - {% endif %}
|
| - {% endfor %}
|
| + {% endif %}
|
| + {% endfor %}
|
|
|
| DISALLOW_COPY_AND_ASSIGN({{type.id}});
|
| };
|
|
|
| - {% endfor %}
|
| +{% endfor %}
|
|
|
| } // namespace {{domain.domain | camelcase_to_hacker_style}}
|
| -{% endfor %}
|
|
|
| } // namespace headless
|
|
|
| -#endif // HEADLESS_PUBLIC_DOMAINS_TYPES_H_
|
| +#endif // HEADLESS_PUBLIC_DEVTOOLS_DOMAINS_TYPES_{{domain.domain | camelcase_to_hacker_style | upper}}_H_
|
|
|