Home | History | Annotate | Download | only in pdx
      1 #ifndef ANDROID_PDX_MESSAGE_WRITER_H_
      2 #define ANDROID_PDX_MESSAGE_WRITER_H_
      3 
      4 #include <pdx/channel_handle.h>
      5 #include <pdx/file_handle.h>
      6 #include <pdx/status.h>
      7 
      8 namespace android {
      9 namespace pdx {
     10 
     11 class OutputResourceMapper {
     12  public:
     13   virtual Status<FileReference> PushFileHandle(const LocalHandle& handle) = 0;
     14   virtual Status<FileReference> PushFileHandle(
     15       const BorrowedHandle& handle) = 0;
     16   virtual Status<FileReference> PushFileHandle(const RemoteHandle& handle) = 0;
     17   virtual Status<ChannelReference> PushChannelHandle(
     18       const LocalChannelHandle& handle) = 0;
     19   virtual Status<ChannelReference> PushChannelHandle(
     20       const BorrowedChannelHandle& handle) = 0;
     21   virtual Status<ChannelReference> PushChannelHandle(
     22       const RemoteChannelHandle& handle) = 0;
     23 
     24  protected:
     25   virtual ~OutputResourceMapper() = default;
     26 };
     27 
     28 class MessageWriter {
     29  public:
     30   virtual void* GetNextWriteBufferSection(size_t size) = 0;
     31   virtual OutputResourceMapper* GetOutputResourceMapper() = 0;
     32 
     33  protected:
     34   virtual ~MessageWriter() = default;
     35 };
     36 
     37 }  // namespace pdx
     38 }  // namespace android
     39 
     40 #endif  // ANDROID_PDX_MESSAGE_WRITER_H_
     41