33#ifndef AAX_CArrayDataBuffer_H
34#define AAX_CArrayDataBuffer_H
49template <AAX_CTypeID T,
class D>
71 auto const size = mData.size() *
sizeof(D);
72 static_assert(std::numeric_limits<
decltype(size)>::max() >= std::numeric_limits<std::remove_pointer<
decltype(oSize)>::type>::max(),
73 "size variable may not represent all positive values of oSize");
74 if (size > std::numeric_limits<std::remove_pointer<
decltype(oSize)>::type>::max()) {
77 *oSize =
static_cast<std::remove_pointer<decltype(oSize)
>::type>(size);
82 *oBuffer = mData.data();
86 std::vector<D>
const mData;
114 auto const size = mData.size() *
sizeof(D);
115 static_assert(std::numeric_limits<
decltype(size)>::max() >= std::numeric_limits<std::remove_pointer<
decltype(oSize)>::type>::max(),
116 "size variable may not represent all positive values of oSize");
117 if (size > std::numeric_limits<std::remove_pointer<
decltype(oSize)>::type>::max()) {
120 *oSize =
static_cast<std::remove_pointer<decltype(oSize)
>::type>(size);
125 *oBuffer = mData.data();
130 std::vector<D>
const mData;
@ AAX_ERROR_SIGNED_INT_OVERFLOW
Definition: AAX_Errors.h:83
@ AAX_ERROR_NULL_ARGUMENT
One or more required pointer arguments are null.
Definition: AAX_Errors.h:94
@ AAX_SUCCESS
Definition: AAX_Errors.h:49
Various utility definitions for AAX.
int32_t AAX_Result
Definition: AAX.h:347
uint32_t AAX_CTypeID
Matches type of OSType used in classic plugins.
Definition: AAX.h:346
A convenience class for array data buffers.
Definition: AAX_CArrayDataBuffer.h:51
~AAX_CArrayDataBufferOfType(void) AAX_OVERRIDE=default
AAX_Result Size(int32_t *oSize) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:69
AAX_CArrayDataBufferOfType(AAX_CArrayDataBufferOfType &&)=default
AAX_CArrayDataBufferOfType(std::vector< D > const &inData)
Definition: AAX_CArrayDataBuffer.h:53
AAX_CArrayDataBufferOfType(AAX_CArrayDataBufferOfType const &)=default
AAX_Result Type(AAX_CTypeID *oType) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:64
AAX_Result Data(void const **oBuffer) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:80
AAX_CArrayDataBufferOfType & operator=(AAX_CArrayDataBufferOfType const &other)=default
AAX_CArrayDataBufferOfType(std::vector< D > &&inData)
Definition: AAX_CArrayDataBuffer.h:54
Definition: AAX_CArrayDataBuffer.h:94
AAX_Result Size(int32_t *oSize) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:112
AAX_Result Data(void const **oBuffer) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:123
AAX_CArrayDataBuffer & operator=(AAX_CArrayDataBuffer const &other)=default
~AAX_CArrayDataBuffer(void) AAX_OVERRIDE=default
AAX_Result Type(AAX_CTypeID *oType) const AAX_OVERRIDE
Definition: AAX_CArrayDataBuffer.h:107
AAX_CArrayDataBuffer(AAX_CArrayDataBuffer const &)=default
AAX_CArrayDataBuffer(AAX_CArrayDataBuffer &&)=default
AAX_CArrayDataBuffer(AAX_CTypeID inType, std::vector< D > const &inData)
Definition: AAX_CArrayDataBuffer.h:96
AAX_CArrayDataBuffer(AAX_CTypeID inType, std::vector< D > &&inData)
Definition: AAX_CArrayDataBuffer.h:97
Interface for reference counted data buffers.
Definition: AAX_IDataBuffer.h:50
void **ppvObjOut AAX_OVERRIDE
Definition: AAX_IDataBuffer.h:55