blob: bc280cffd713a1832a2ee1fc90be03b4218fc1ef [file] [log] [blame]
#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_