blob: 29607a65fe08b41c7f4c03cc65e3133e54e92a55 [file] [log] [blame]
{{/*
// Copyright 2022 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 "Method:ClientImplAsyncBuffer:driver/MessagingHeader" }}
{{ .Docs }}
{{- if .DocComments }}
//
{{- end }}
// Caller provides the backing storage for FIDL message.
{{ .WireBufferThenable }} {{ .Name }}({{ RenderParams .RequestArgs }});
{{ end }}
{{- define "Method:ClientImplAsyncBuffer:driver/MessagingSource" }}
{{ .WireBufferThenable }} {{ .Protocol.WireWeakAsyncBufferClientImpl.NoLeading }}::{{ .Name }}(
{{- RenderParams .RequestArgs }}) {
constexpr uint32_t _buffer_size = ::fidl::AsyncClientMethodBufferSizeInChannel<{{ .Marker }}>();
uint8_t* _buffer = static_cast<uint8_t*>(_arena().Allocate(_buffer_size));
{{ .WireTransactionalRequest }} _request{ {{ RenderForwardParams .RequestArgs }} };
fidl::WriteOptions _options = {};
_options.outgoing_transport_context =
::fidl::internal::OutgoingTransportContext::Create<::fidl::internal::DriverTransport>(
_arena().get());
return {{ .WireBufferThenable }}{
_client_base(), std::move(_options), _buffer, _buffer_size, &_request};
}
{{- end }}