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