#ifndef ANDROID_PDX_MESSAGE_WRITER_H_ #define ANDROID_PDX_MESSAGE_WRITER_H_ #include <pdx/channel_handle.h> #include <pdx/file_handle.h> #include <pdx/status.h> namespace android { namespace pdx { class OutputResourceMapper { public: virtual Status<FileReference> PushFileHandle(const LocalHandle& handle) = 0; virtual Status<FileReference> PushFileHandle( const BorrowedHandle& handle) = 0; virtual Status<FileReference> PushFileHandle(const RemoteHandle& handle) = 0; virtual Status<ChannelReference> PushChannelHandle( const LocalChannelHandle& handle) = 0; virtual Status<ChannelReference> PushChannelHandle( const BorrowedChannelHandle& handle) = 0; virtual Status<ChannelReference> PushChannelHandle( const RemoteChannelHandle& handle) = 0; protected: virtual ~OutputResourceMapper() = default; }; class MessageWriter { public: virtual void* GetNextWriteBufferSection(size_t size) = 0; virtual OutputResourceMapper* GetOutputResourceMapper() = 0; protected: virtual ~MessageWriter() = default; }; } // namespace pdx } // namespace android #endif // ANDROID_PDX_MESSAGE_WRITER_H_