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