11#include <promeki/config.h>
12#if PROMEKI_ENABLE_CORE
21PROMEKI_NAMESPACE_BEGIN
34using BufferImplPtr = SharedPtr<BufferImpl, false>;
53using BufferImplFactory =
54 Function<BufferImplPtr(
const MemSpace &ms,
size_t bytes,
size_t align)>;
68void registerBufferImplFactory(MemSpace::ID
id, BufferImplFactory factory);
78BufferImplPtr makeBufferImpl(
const MemSpace &ms,
size_t bytes,
size_t align);
100using BufferCopyFn = Error (*)(
const Buffer &src, Buffer &dst,
size_t bytes,
size_t srcOffset,
size_t dstOffset);
113void registerBufferCopy(MemSpace::ID srcId, MemSpace::ID dstId, BufferCopyFn fn);
122BufferCopyFn lookupBufferCopy(MemSpace::ID srcId, MemSpace::ID dstId);