blob: 4a101d6806f9c0e0b687641cfc178e8e86798829 [file] [log] [blame]
#ifndef ANDROID_PDX_MESSAGE_WRITER_H_
#define ANDROID_PDX_MESSAGE_WRITER_H_
#include <pdx/channel_handle.h>
#include <pdx/file_handle.h>
#include <pdx/status.h>
namespace android {
namespace pdx {
class OutputResourceMapper {
public:
virtual Status<FileReference> PushFileHandle(const LocalHandle& handle) = 0;
virtual Status<FileReference> PushFileHandle(
const BorrowedHandle& handle) = 0;
virtual Status<FileReference> PushFileHandle(const RemoteHandle& handle) = 0;
virtual Status<ChannelReference> PushChannelHandle(
const LocalChannelHandle& handle) = 0;
virtual Status<ChannelReference> PushChannelHandle(
const BorrowedChannelHandle& handle) = 0;
virtual Status<ChannelReference> PushChannelHandle(
const RemoteChannelHandle& handle) = 0;
protected:
virtual ~OutputResourceMapper() = default;
};
class MessageWriter {
public:
virtual void* GetNextWriteBufferSection(size_t size) = 0;
virtual OutputResourceMapper* GetOutputResourceMapper() = 0;
protected:
virtual ~MessageWriter() = default;
};
} // namespace pdx
} // namespace android
#endif // ANDROID_PDX_MESSAGE_WRITER_H_