| {{/* |
| // Copyright 2021 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| */}} |
| |
| {{- define "Filename:WireTypesHeader" -}} |
| fidl/{{ .LibraryDots }}/cpp/wire_types.h |
| {{- end }} |
| |
| |
| {{- define "File:WireTypesHeader" -}} |
| {{- UseWire -}} |
| // WARNING: This file is machine generated by fidlgen. |
| |
| #pragma once |
| |
| #include <cinttypes> |
| |
| #include <lib/fidl/llcpp/array.h> |
| #include <lib/fidl/llcpp/coding.h> |
| #include <lib/fidl/llcpp/envelope.h> |
| #include <lib/fidl/llcpp/message_storage.h> |
| #include <lib/fidl/llcpp/message.h> |
| #include <lib/fidl/llcpp/object_view.h> |
| #include <lib/fidl/llcpp/string_view.h> |
| #include <lib/fidl/llcpp/traits.h> |
| #include <lib/fidl/llcpp/wire_types.h> |
| #include <lib/stdcompat/optional.h> |
| {{- IfdefFuchsia -}} |
| {{ range .HandleTypes -}} |
| #include <{{ . }}> |
| {{ end -}} |
| {{ if .ContainsDriverReferences -}} |
| #include <lib/fidl_driver/cpp/wire_types.h> |
| {{ end -}} |
| {{- EndifFuchsia }} |
| |
| #include <{{ .Library | Filename "Markers" }}> |
| #include <{{ .Library | Filename "CommonTypesHeader" }}> |
| {{ range .Dependencies -}} |
| #include <{{ . | Filename "WireTypesHeader" }}> |
| {{ end }} |
| |
| {{ range .Bits }}{{ template "Bits:WireTypesHeader" . }}{{ end }} |
| {{ range .Enums }}{{ template "Enum:WireTypesHeader" . }}{{ end }} |
| {{ range .Structs }}{{ template "Struct:ForwardDeclaration:WireTypesHeader" . }}{{ end }} |
| {{ range .Tables }}{{ template "Table:ForwardDeclaration:WireTypesHeader" . }}{{ end }} |
| {{ range .Unions }}{{ template "Union:ForwardDeclaration:WireTypesHeader" . }}{{ end }} |
| |
| {{- /* Resolve inline object declaration order by defining small inline structs first |
| (size <= 4 so can't contain a table or a union), then tables and unions, then |
| the remaining types. */}} |
| {{- range .Structs }} |
| {{ if le .TypeShapeV2.InlineSize 4 }}{{ template "Struct:WireTypesHeader" . }}{{ end }} |
| {{- end }} |
| {{ range .Tables }}{{ template "Table:WireTypesHeader" . }}{{ end }} |
| {{ range .Unions }}{{ template "Union:WireTypesHeader" . }}{{ end }} |
| {{ range .Consts }}{{ template "Const:WireTypesHeader" . }}{{ end }} |
| {{ range .Structs }} |
| {{ if gt .TypeShapeV2.InlineSize 4 }}{{ template "Struct:WireTypesHeader" . }}{{ end }} |
| {{- end }} |
| |
| {{ EnsureNamespace "fidl" }} |
| |
| {{ range .Structs }}{{ template "Struct:Traits:WireTypesHeader" . }}{{ end }} |
| {{ range .Tables }}{{ template "Table:Traits:WireTypesHeader" . }}{{ end }} |
| {{ range .Unions }}{{ template "Union:Traits:WireTypesHeader" . }}{{ end }} |
| |
| {{ EndOfFile }} |
| {{ end }} |
| |
| |