| Index: third_party/inspector_protocol/templates/Imported_h.template
|
| diff --git a/third_party/inspector_protocol/templates/Imported_h.template b/third_party/inspector_protocol/templates/Imported_h.template
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c23b8fe87c9f556a4b3e853477c352fe69bcafea
|
| --- /dev/null
|
| +++ b/third_party/inspector_protocol/templates/Imported_h.template
|
| @@ -0,0 +1,51 @@
|
| +// This file is generated
|
| +
|
| +// Copyright (c) 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.
|
| +
|
| +#ifndef {{"_".join(config.protocol.namespace)}}_{{domain.domain}}_imported_h
|
| +#define {{"_".join(config.protocol.namespace)}}_{{domain.domain}}_imported_h
|
| +
|
| +#include "{{config.protocol.package}}/Protocol.h"
|
| +#include {{format_include(config.imported.header if config.imported.header else "\"%s/%s.h\"" % (config.imported.package, domain.domain))}}
|
| +
|
| +{% for namespace in config.protocol.namespace %}
|
| +namespace {{namespace}} {
|
| +{% endfor %}
|
| + {% for type in domain.types %}
|
| + {% if not (type.type == "object") or not ("properties" in type) or not (type.exported) %}{% continue %}{% endif %}
|
| +
|
| +template<>
|
| +struct ValueConversions<{{"::".join(config.imported.namespace)}}::{{domain.domain}}::API::{{type.id}}> {
|
| + static std::unique_ptr<{{"::".join(config.imported.namespace)}}::{{domain.domain}}::API::{{type.id}}> parse(protocol::Value* value, ErrorSupport* errors)
|
| + {
|
| + if (!value) {
|
| + errors->addError("value expected");
|
| + return nullptr;
|
| + }
|
| + String json = value->toJSONString();
|
| + auto result = {{"::".join(config.imported.namespace)}}::{{domain.domain}}::API::{{type.id}}::fromJSONString({{config.imported.to_imported_string % "json"}});
|
| + if (!result)
|
| + errors->addError("cannot parse");
|
| + return result;
|
| + }
|
| +
|
| + static std::unique_ptr<protocol::Value> serialize(const {{"::".join(config.imported.namespace)}}::{{domain.domain}}::API::{{type.id}}* value)
|
| + {
|
| + auto json = value->toJSONString();
|
| + return SerializedValue::create({{config.imported.from_imported_string % "std::move(json)"}});
|
| + }
|
| +
|
| + static std::unique_ptr<protocol::Value> serialize(const std::unique_ptr<{{"::".join(config.imported.namespace)}}::{{domain.domain}}::API::{{type.id}}>& value)
|
| + {
|
| + return serialize(value.get());
|
| + }
|
| +};
|
| + {% endfor %}
|
| +
|
| +{% for namespace in config.protocol.namespace %}
|
| +} // namespace {{namespace}}
|
| +{% endfor %}
|
| +
|
| +#endif // !defined({{"_".join(config.protocol.namespace)}}_{{domain.domain}}_imported_h)
|
|
|