| {{/* |
| // Copyright 2018 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:Implementation" -}} |
| {{- .LibrarySlashes }}/cpp/fidl.cc |
| {{- end }} |
| |
| {{- define "File:Implementation" -}} |
| {{- UseHLCPP -}} |
| // WARNING: This file is machine generated by fidlgen. |
| {{ range $experiment := .Experiments }} |
| // fidl_experiment = {{ $experiment }} |
| {{- end }} |
| |
| {{- /* When the library name only has one component, it is always special. |
| Those libraries should not define business logic types or protocols, and we |
| do not support them in the bindings. */}} |
| {{- if not .SingleComponentLibraryName }} |
| |
| #include <{{ .Library | Filename "Header" }}> |
| |
| #include "lib/fidl/cpp/internal/implementation.h" |
| |
| // |
| // Domain objects definitions |
| // |
| |
| {{- range .Decls }} |
| {{- if Eq .Kind Kinds.Bits }}{{ template "BitsDefinition" . }}{{- end }} |
| {{- if Eq .Kind Kinds.Const }}{{ template "ConstDefinition" . }}{{- end }} |
| {{- if Eq .Kind Kinds.Enum }}{{ template "EnumDefinition" . }}{{- end }} |
| {{- if Eq .Kind Kinds.Struct }}{{ template "StructDefinition" . }}{{- end }} |
| {{- if Eq .Kind Kinds.Union }}{{ template "UnionDefinition" . }}{{- end }} |
| {{- if Eq .Kind Kinds.Table }}{{ template "TableDefinition" . }}{{- end }} |
| {{- end }} |
| |
| // |
| // Proxies and stubs definitions |
| // |
| |
| {{- range (call .ProtocolsForTransport "Channel") }} |
| {{ template "ProtocolDefinition" .WithHlMessaging }} |
| {{- end }} |
| |
| {{- end }}{{/* if not SingleComponentLibraryName */}} |
| {{ EndOfFile }} |
| {{ end }} |