39 lines
970 B
C
39 lines
970 B
C
|
#ifndef ANDROID_PDX_MESSAGE_READER_H_
|
||
|
#define ANDROID_PDX_MESSAGE_READER_H_
|
||
|
|
||
|
#include <memory>
|
||
|
|
||
|
#include <pdx/channel_handle.h>
|
||
|
#include <pdx/file_handle.h>
|
||
|
|
||
|
namespace android {
|
||
|
namespace pdx {
|
||
|
|
||
|
class InputResourceMapper {
|
||
|
public:
|
||
|
virtual bool GetFileHandle(FileReference ref, LocalHandle* handle) = 0;
|
||
|
virtual bool GetChannelHandle(ChannelReference ref,
|
||
|
LocalChannelHandle* handle) = 0;
|
||
|
|
||
|
protected:
|
||
|
virtual ~InputResourceMapper() = default;
|
||
|
};
|
||
|
|
||
|
class MessageReader {
|
||
|
public:
|
||
|
// Pointers to start/end of the region in the read buffer.
|
||
|
using BufferSection = std::pair<const void*, const void*>;
|
||
|
|
||
|
virtual BufferSection GetNextReadBufferSection() = 0;
|
||
|
virtual void ConsumeReadBufferSectionData(const void* new_start) = 0;
|
||
|
virtual InputResourceMapper* GetInputResourceMapper() = 0;
|
||
|
|
||
|
protected:
|
||
|
virtual ~MessageReader() = default;
|
||
|
};
|
||
|
|
||
|
} // namespace pdx
|
||
|
} // namespace android
|
||
|
|
||
|
#endif // ANDROID_PDX_MESSAGE_READER_H_
|