Home | History | Annotate | Download | only in pdx
      1 #ifndef ANDROID_PDX_MESSAGE_READER_H_
      2 #define ANDROID_PDX_MESSAGE_READER_H_
      3 
      4 #include <memory>
      5 
      6 #include <pdx/channel_handle.h>
      7 #include <pdx/file_handle.h>
      8 
      9 namespace android {
     10 namespace pdx {
     11 
     12 class InputResourceMapper {
     13  public:
     14   virtual bool GetFileHandle(FileReference ref, LocalHandle* handle) = 0;
     15   virtual bool GetChannelHandle(ChannelReference ref,
     16                                 LocalChannelHandle* handle) = 0;
     17 
     18  protected:
     19   virtual ~InputResourceMapper() = default;
     20 };
     21 
     22 class MessageReader {
     23  public:
     24   // Pointers to start/end of the region in the read buffer.
     25   using BufferSection = std::pair<const void*, const void*>;
     26 
     27   virtual BufferSection GetNextReadBufferSection() = 0;
     28   virtual void ConsumeReadBufferSectionData(const void* new_start) = 0;
     29   virtual InputResourceMapper* GetInputResourceMapper() = 0;
     30 
     31  protected:
     32   virtual ~MessageReader() = default;
     33 };
     34 
     35 }  // namespace pdx
     36 }  // namespace android
     37 
     38 #endif  // ANDROID_PDX_MESSAGE_READER_H_
     39