84 [[nodiscard]]
size_t getSize() const noexcept;
95 [[nodiscard]] virtual
void*
data() = 0;
195 [[nodiscard]]
void*
data()
override;
204 class RMMBuffer :
public Buffer {
206 std::unique_ptr<rmm::device_buffer> _buffer;
209 RMMBuffer() =
delete;
210 RMMBuffer(
const RMMBuffer&) =
delete;
211 RMMBuffer& operator=(RMMBuffer
const&) =
delete;
212 RMMBuffer(RMMBuffer&& o) =
delete;
213 RMMBuffer& operator=(RMMBuffer&& o) =
delete;
215 ~RMMBuffer()
override;
232 "RMMBuffer is deprecated and will be removed in a future release. Use CCCL buffers instead "
233 "(UCXX_ENABLE_CCCL).")]]
234 explicit RMMBuffer(
const size_t size);
242 "RMMBuffer is deprecated and will be removed in a future release. Use CCCL buffers instead "
243 "(UCXX_ENABLE_CCCL).")]]
244 explicit RMMBuffer(std::unique_ptr<rmm::device_buffer> rmm_buffer);
272 [[nodiscard]] std::unique_ptr<rmm::device_buffer> release();
294 [[nodiscard]]
void*
data()
override;
303 struct CCCLBufferImpl;
310 class CCCLBuffer :
public Buffer {
312 std::unique_ptr<CCCLBufferImpl> _impl;
315 CCCLBuffer() =
delete;
316 CCCLBuffer(
const CCCLBuffer&) =
delete;
317 CCCLBuffer& operator=(CCCLBuffer
const&) =
delete;
318 CCCLBuffer(CCCLBuffer&& o) =
delete;
319 CCCLBuffer& operator=(CCCLBuffer&& o) =
delete;
321 ~CCCLBuffer()
override;
337 explicit CCCLBuffer(
const size_t size);
354 [[nodiscard]]
void*
data()
override;
A simple object to simplify managing buffers.
Definition: buffer.h:37
Buffer(const BufferType bufferType, const size_t size)
Protected constructor of abstract type Buffer.
virtual ~Buffer()
Virtual destructor.
BufferType _bufferType
Buffer type.
Definition: buffer.h:39
size_t getSize() const noexcept
Get the size of the contained buffer.
BufferType getType() const noexcept
Get the type of buffer the object holds.
size_t _size
Buffer size.
Definition: buffer.h:40
virtual void * data()=0
Abstract method returning void pointer to buffer.
A simple object containing a host buffer.
Definition: buffer.h:103
void * release()
Release the allocated host buffer to the caller.
~HostBuffer()
Destructor of concrete type HostBuffer.
HostBuffer(const void *buffer, const size_t size)
Construct a host buffer by deep copying the contents of another buffer.
HostBuffer(const size_t size)
Constructor of concrete type HostBuffer.
void * data() override
Get a pointer to the allocated raw host buffer.
std::shared_ptr< Buffer > allocateBuffer(BufferType bufferType, const size_t size)
Allocate a buffer of specified type and size.
BufferType
The type of a buffer.
Definition: buffer.h:22