blob: b38dae4835664f23a750e7738890c890193bb5ae [file] [log] [blame]
#include <android/aidl/loggable/Data.h>
namespace android {
namespace aidl {
namespace loggable {
::android::status_t Data::readFromParcel(const ::android::Parcel* _aidl_parcel) {
::android::status_t _aidl_ret_status = ::android::OK;
[[maybe_unused]] size_t _aidl_start_pos = _aidl_parcel->dataPosition();
int32_t _aidl_parcelable_raw_size = _aidl_parcel->readInt32();
if (_aidl_parcelable_raw_size < 0) return ::android::BAD_VALUE;
[[maybe_unused]] size_t _aidl_parcelable_size = static_cast<size_t>(_aidl_parcelable_raw_size);
if (_aidl_start_pos > SIZE_MAX - _aidl_parcelable_size) return ::android::BAD_VALUE;
if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->readInt32(&num);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->readUtf8FromUtf16(&str);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->readParcelable(&nestedUnion);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
if (_aidl_parcel->dataPosition() - _aidl_start_pos >= _aidl_parcelable_size) {
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->readByte(reinterpret_cast<int8_t *>(&nestedEnum));
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
_aidl_parcel->setDataPosition(_aidl_start_pos + _aidl_parcelable_size);
return _aidl_ret_status;
}
::android::status_t Data::writeToParcel(::android::Parcel* _aidl_parcel) const {
::android::status_t _aidl_ret_status = ::android::OK;
auto _aidl_start_pos = _aidl_parcel->dataPosition();
_aidl_parcel->writeInt32(0);
_aidl_ret_status = _aidl_parcel->writeInt32(num);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->writeUtf8AsUtf16(str);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->writeParcelable(nestedUnion);
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
_aidl_ret_status = _aidl_parcel->writeByte(static_cast<int8_t>(nestedEnum));
if (((_aidl_ret_status) != (::android::OK))) {
return _aidl_ret_status;
}
auto _aidl_end_pos = _aidl_parcel->dataPosition();
_aidl_parcel->setDataPosition(_aidl_start_pos);
_aidl_parcel->writeInt32(_aidl_end_pos - _aidl_start_pos);
_aidl_parcel->setDataPosition(_aidl_end_pos);
return _aidl_ret_status;
}
} // namespace loggable
} // namespace aidl
} // namespace android