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