blob: 9486f3c91954c771d2902683f2e2400a737e9785 [file] [log] [blame]
#include "android/dvr/parcelable_unique_fd.h"
#include <binder/Parcel.h>
namespace android {
namespace dvr {
ParcelableUniqueFd::ParcelableUniqueFd() {}
ParcelableUniqueFd::ParcelableUniqueFd(const base::unique_fd& fence)
: fence_(dup(fence.get())) {}
ParcelableUniqueFd::~ParcelableUniqueFd() {}
status_t ParcelableUniqueFd::writeToParcel(Parcel* parcel) const {
status_t ret = parcel->writeBool(fence_.get() >= 0);
if (ret != OK) return ret;
if (fence_.get() >= 0)
ret = parcel->writeUniqueFileDescriptor(fence_);
return ret;
}
status_t ParcelableUniqueFd::readFromParcel(const Parcel* parcel) {
bool has_fence = 0;
status_t ret = parcel->readBool(&has_fence);
if (ret != OK) return ret;
if (has_fence)
ret = parcel->readUniqueFileDescriptor(&fence_);
return ret;
}
} // namespace dvr
} // namespace android