Index: headless/lib/browser/types_cc.template |
diff --git a/headless/lib/browser/types_cc.template b/headless/lib/browser/types_cc.template |
deleted file mode 100644 |
index 5be72cf79240a5f5be27e902a802b040a4ada3ff..0000000000000000000000000000000000000000 |
--- a/headless/lib/browser/types_cc.template |
+++ /dev/null |
@@ -1,130 +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/types.h" |
- |
-#include "base/memory/ptr_util.h" |
-#include "headless/public/domains/type_conversions.h" |
- |
-namespace headless { |
- |
-// ------------- Enum values from types. |
-{% for domain in api.domains %} |
- {% continue %} |
- |
-namespace internal { |
- |
- {% for type in domain.types %} |
-// {{type}} |
- {% if type.type == "array" %} |
-template <> |
-struct FromValue<{{resolve_type(type).raw_type}}> { |
- static {{resolve_type(type).raw_type}} Parse(const base::Value& value, ErrorReporter* errors) { |
- {{resolve_type(type).raw_type}} result; |
- const base::ListValue* list; |
- if (!value.GetAsList(&list)) { |
- errors->AddError("list value expected"); |
- return result; |
- } |
- errors->Push(); |
- for (const auto& item : *list) |
- result.push_back(FromValue<{{resolve_type(type).raw_type}}::value_type>::Parse(*item, errors)); |
- errors->Pop(); |
- return result; |
- } |
-}; |
- |
- {% continue %} |
- {% endif %} |
-#} |
- {% if not (type.type == "object") or not ("properties" in type) %}{% continue %}{% endif %} |
- {% set namespace = domain.domain | camelcase_to_hacker_style %} |
-template <> |
-struct FromValue<{{namespace}}::{{type.id}}> { |
- static std::unique_ptr<{{namespace}}::{{type.id}}> Parse(const base::Value& value, ErrorReporter* errors) { |
- return {{namespace}}::{{type.id}}::Parse(value, errors); |
- } |
-}; |
- |
-template <typename T> |
-std::unique_ptr<base::Value> ToValueImpl(const {{namespace}}::{{type.id}}& value, T*) { |
- return value.Serialize(); |
-} |
- |
- {% endfor %} |
-} // namespace internal |
-{% endfor %} |
- |
-{% for domain in api.domains %} |
- |
-namespace {{domain.domain | camelcase_to_hacker_style}} { |
- {% for type in domain.types %} |
- {% if not (type.type == "object") or not ("properties" in type) %}{% continue %}{% endif %} |
- |
-std::unique_ptr<{{type.id}}> {{type.id}}::Parse(const base::Value& value, ErrorReporter* errors) { |
- errors->Push(); |
- errors->SetName("{{type.id}}"); |
- const base::DictionaryValue* object; |
- if (!value.GetAsDictionary(&object)) { |
- errors->AddError("object expected"); |
- errors->Pop(); |
- return nullptr; |
- } |
- |
- std::unique_ptr<{{type.id}}> result(new {{type.id}}()); |
- errors->Push(); |
- errors->SetName("{{type.id}}"); |
- {% for property in type.properties %} |
- {% set value_name = property.name | camelcase_to_hacker_style + "_value" %} |
- const base::Value* {{value_name}}; |
- if (object->Get("{{property.name}}", &{{value_name}})) { |
- errors->SetName("{{property.name}}"); |
- {% if property.optional %} |
- result->{{property.name | camelcase_to_hacker_style}}_ = internal::FromValue<{{resolve_type(property).raw_type}}>::Parse(*{{value_name}}, errors); |
- {% else %} |
- result->{{property.name | camelcase_to_hacker_style}}_ = internal::FromValue<{{resolve_type(property).raw_type}}>::Parse(*{{value_name}}, errors); |
- {% endif %} |
- {% if property.optional %} |
- } |
- {% else %} |
- } else { |
- errors->AddError("required property missing: {{property.name}}"); |
- } |
- {% endif %} |
- {% endfor %} |
- errors->Pop(); |
- errors->Pop(); |
- if (errors->HasErrors()) |
- return nullptr; |
- return result; |
-} |
- |
-std::unique_ptr<base::Value> {{type.id}}::Serialize() const { |
- std::unique_ptr<base::DictionaryValue> result(new base::DictionaryValue()); |
- {% for property in type.properties %} |
- {% set type = resolve_type(property) %} |
- {% if property.optional %} |
- if ({{property.name | camelcase_to_hacker_style}}_) |
- result->Set("{{property.name}}", internal::ToValue({{type.to_raw_type % ("%s_.value()" % property.name | camelcase_to_hacker_style)}})); |
- {% else %} |
- result->Set("{{property.name}}", internal::ToValue({{type.to_raw_type % ("%s_" % property.name | camelcase_to_hacker_style)}})); |
- {% endif %} |
- {% endfor %} |
- return std::move(result); |
-} |
- |
-std::unique_ptr<{{type.id}}> {{type.id}}::Clone() const { |
- ErrorReporter errors; |
- std::unique_ptr<{{type.id}}> result = Parse(*Serialize(), &errors); |
- DCHECK(!errors.HasErrors()); |
- return result; |
-} |
- |
- {% endfor %} |
-} // namespace {{domain.domain | camelcase_to_hacker_style}} |
-{% endfor %} |
- |
-} // namespace headless |