1a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai#ifndef ANDROID_PDX_UDS_CHANNEL_PARCELABLE_H_ 2a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai#define ANDROID_PDX_UDS_CHANNEL_PARCELABLE_H_ 3a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 4a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai#include <pdx/channel_parcelable.h> 5a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai#include <pdx/file_handle.h> 6a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 7a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cainamespace android { 8a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cainamespace pdx { 9a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cainamespace uds { 10a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 11a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Caiclass ChannelParcelable : public pdx::ChannelParcelable { 12a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai public: 13a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai ChannelParcelable() = default; 14a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai ChannelParcelable(LocalHandle data_fd, LocalHandle pollin_event_fd, 15a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai LocalHandle pollhup_event_fd); 16a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 17a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai // Implements pdx::ChannelParcelable interface. 18a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai bool IsValid() const override; 19a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai LocalChannelHandle TakeChannelHandle() override; 20a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 21a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai // Implements android::Parcelable interface. 22a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai status_t writeToParcel(Parcel* parcel) const override; 23a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai status_t readFromParcel(const Parcel* parcel) override; 24a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 25a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai private: 26a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai LocalHandle data_fd_; 27a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai LocalHandle pollin_event_fd_; 28a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai LocalHandle pollhup_event_fd_; 29a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai}; 30a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 31a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai} // namespace uds 32a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai} // namespace pdx 33a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai} // namespace android 34a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai 35a88e3ee3a33a60e72bd976cfb5b9fc0bd15a1078Jiwen 'Steve' Cai#endif // ANDROID_PDX_UDS_CHANNEL_PARCELABLE_H_ 36