#include "aidl/android/aidl/tests/unions/EnumUnion.h" #include namespace aidl { namespace android { namespace aidl { namespace tests { namespace unions { const char* EnumUnion::descriptor = "android.aidl.tests.unions.EnumUnion"; binder_status_t EnumUnion::readFromParcel(const AParcel* _parcel) { binder_status_t _aidl_ret_status; int32_t _aidl_tag; if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_tag)) != STATUS_OK) return _aidl_ret_status; switch (static_cast(_aidl_tag)) { case intEnum: { ::aidl::android::aidl::tests::IntEnum _aidl_value; if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status; if constexpr (std::is_trivially_copyable_v<::aidl::android::aidl::tests::IntEnum>) { set(_aidl_value); } else { // NOLINTNEXTLINE(performance-move-const-arg) set(std::move(_aidl_value)); } return STATUS_OK; } case longEnum: { ::aidl::android::aidl::tests::LongEnum _aidl_value; if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status; if constexpr (std::is_trivially_copyable_v<::aidl::android::aidl::tests::LongEnum>) { set(_aidl_value); } else { // NOLINTNEXTLINE(performance-move-const-arg) set(std::move(_aidl_value)); } return STATUS_OK; } #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" case deprecatedField: { int32_t _aidl_value; if ((_aidl_ret_status = ::ndk::AParcel_readData(_parcel, &_aidl_value)) != STATUS_OK) return _aidl_ret_status; if constexpr (std::is_trivially_copyable_v) { set(_aidl_value); } else { // NOLINTNEXTLINE(performance-move-const-arg) set(std::move(_aidl_value)); } return STATUS_OK; } #pragma clang diagnostic pop } return STATUS_BAD_VALUE; } binder_status_t EnumUnion::writeToParcel(AParcel* _parcel) const { binder_status_t _aidl_ret_status = ::ndk::AParcel_writeData(_parcel, static_cast(getTag())); if (_aidl_ret_status != STATUS_OK) return _aidl_ret_status; switch (getTag()) { case intEnum: return ::ndk::AParcel_writeData(_parcel, get()); case longEnum: return ::ndk::AParcel_writeData(_parcel, get()); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" case deprecatedField: return ::ndk::AParcel_writeData(_parcel, get()); #pragma clang diagnostic pop } __assert2(__FILE__, __LINE__, __PRETTY_FUNCTION__, "can't reach here"); } } // namespace unions } // namespace tests } // namespace aidl } // namespace android } // namespace aidl