| // WARNING: This file is machine generated by fidlgen. |
| |
| #include <fidl/test/handlesintypes/llcpp/fidl.h> |
| |
| #include <memory> |
| |
| namespace llcpp { |
| |
| namespace fidl { |
| namespace test { |
| namespace handlesintypes { |
| #ifdef __Fuchsia__ |
| auto ::llcpp::fidl::test::handlesintypes::UnionWithHandle::which() const |
| -> Tag { |
| ZX_ASSERT(!has_invalid_tag()); |
| switch (ordinal_) { |
| case Ordinal::kH: |
| return static_cast<Tag>(ordinal_); |
| default: |
| return Tag::kUnknown; |
| } |
| } |
| |
| void ::llcpp::fidl::test::handlesintypes::UnionWithHandle:: |
| SizeAndOffsetAssertionHelper() { |
| static_assert(sizeof(UnionWithHandle) == sizeof(fidl_xunion_t)); |
| static_assert(offsetof(UnionWithHandle, ordinal_) == |
| offsetof(fidl_xunion_t, tag)); |
| static_assert(offsetof(UnionWithHandle, envelope_) == |
| offsetof(fidl_xunion_t, envelope)); |
| } |
| void UnionWithHandle::_CloseHandles() { |
| switch (ordinal_) { |
| case Ordinal::kH: { |
| mutable_h().reset(); |
| break; |
| } |
| default: |
| break; |
| } |
| } |
| #endif // __Fuchsia__ |
| |
| #ifdef __Fuchsia__ |
| void TableWithHandle::_CloseHandles() { |
| if (has_h()) { |
| h().reset(); |
| } |
| } |
| #endif // __Fuchsia__ |
| |
| #ifdef __Fuchsia__ |
| void HandlesInTypes::_CloseHandles() { |
| normal_handle.reset(); |
| { |
| ::zx::vmo* handle_in_vec_element = handle_in_vec.mutable_data(); |
| for (uint64_t i = 0; i < handle_in_vec.count(); |
| ++i, ++handle_in_vec_element) { |
| handle_in_vec_element->reset(); |
| } |
| } |
| { |
| ::zx::vmo* handle_in_array_element = handle_in_array.data(); |
| for (size_t i = 0; i < handle_in_array.size(); |
| ++i, ++handle_in_array_element) { |
| handle_in_array_element->reset(); |
| } |
| } |
| { |
| ::fidl::Array<::zx::vmo, 5>* handle_in_mixed_vec_array_element = |
| handle_in_mixed_vec_array.mutable_data(); |
| for (uint64_t i = 0; i < handle_in_mixed_vec_array.count(); |
| ++i, ++handle_in_mixed_vec_array_element) { |
| { |
| ::zx::vmo* handle_in_mixed_vec_array_element_element = |
| (*handle_in_mixed_vec_array_element).data(); |
| for (size_t i = 0; i < (*handle_in_mixed_vec_array_element).size(); |
| ++i, ++handle_in_mixed_vec_array_element_element) { |
| handle_in_mixed_vec_array_element_element->reset(); |
| } |
| } |
| } |
| } |
| table_with_handle._CloseHandles(); |
| union_with_handle._CloseHandles(); |
| } |
| #endif // __Fuchsia__ |
| |
| } // namespace handlesintypes |
| } // namespace test |
| } // namespace fidl |
| } // namespace llcpp |