41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
|
#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_
|