Index: third_party/inspector_protocol/templates/Exported_h.template |
diff --git a/third_party/inspector_protocol/templates/Exported_h.template b/third_party/inspector_protocol/templates/Exported_h.template |
new file mode 100644 |
index 0000000000000000000000000000000000000000..3357f95b5ef1597049b157f55ba6978bebad22c1 |
--- /dev/null |
+++ b/third_party/inspector_protocol/templates/Exported_h.template |
@@ -0,0 +1,65 @@ |
+// 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}}_api_h |
+#define {{"_".join(config.protocol.namespace)}}_{{domain.domain}}_api_h |
+ |
+{% if config.exported.export_header %} |
+#include {{format_include(config.exported.export_header)}} |
+{% endif %} |
+#include {{format_include(config.exported.string_header)}} |
+ |
+{% for namespace in config.protocol.namespace %} |
+namespace {{namespace}} { |
+{% endfor %} |
+namespace {{domain.domain}} { |
+namespace API { |
+ |
+// ------------- Enums. |
+ {% for type in domain.types %} |
+ {% if ("enum" in type) and type.exported %} |
+ |
+namespace {{type.id}}Enum { |
+ {% for literal in type.enum %} |
+{{config.exported.export_macro}} extern const char* {{ literal | dash_to_camelcase}}; |
+ {% endfor %} |
+} // {{type.id}}Enum |
+ {% endif %} |
+ {% endfor %} |
+ {% for command in join_arrays(domain, ["commands", "events"]) %} |
+ {% for param in join_arrays(command, ["parameters", "returns"]) %} |
+ {% if ("enum" in param) and (param.exported) %} |
+ |
+namespace {{command.name | to_title_case}} { |
+namespace {{param.name | to_title_case}}Enum { |
+ {% for literal in param.enum %} |
+{{config.exported.export_macro}} extern const char* {{ literal | dash_to_camelcase}}; |
+ {% endfor %} |
+} // {{param.name | to_title_case}}Enum |
+} // {{command.name | to_title_case }} |
+ {% endif %} |
+ {% endfor %} |
+ {% endfor %} |
+ |
+// ------------- Types. |
+ {% for type in domain.types %} |
+ {% if not (type.type == "object") or not ("properties" in type) or not (type.exported) %}{% continue %}{% endif %} |
+ |
+class {{config.exported.export_macro}} {{type.id}} { |
+public: |
+ virtual {{config.exported.string_out}} toJSONString() const = 0; |
+ virtual ~{{type.id}}() { } |
+ static std::unique_ptr<protocol::{{domain.domain}}::API::{{type.id}}> fromJSONString(const {{config.exported.string_in}}& json); |
+}; |
+ {% endfor %} |
+ |
+} // namespace API |
+} // namespace {{domain.domain}} |
+{% for namespace in config.protocol.namespace %} |
+} // namespace {{namespace}} |
+{% endfor %} |
+ |
+#endif // !defined({{"_".join(config.protocol.namespace)}}_{{domain.domain}}_api_h) |