MCPcopy Create free account
hub / github.com/CVCUDA/CV-CUDA / Array

Method Array

src/nvcv/src/priv/Array.cpp:127–158  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

125}
126
127Array::Array(NVCVArrayRequirements reqs, IAllocator &alloc, NVCVResourceType target)
128 : m_alloc{alloc}
129 , m_reqs{std::move(reqs)}
130 , m_target{target}
131{
132 // Assuming reqs are already validated during its creation
133
134 int64_t bufSize;
135 switch (m_target)
136 {
137 case NVCV_RESOURCE_MEM_CUDA:
138 bufSize = CalcTotalSizeBytes(m_reqs.mem.cudaMem);
139 m_memBuffer = m_alloc->allocCudaMem(bufSize, m_reqs.alignBytes);
140 break;
141 case NVCV_RESOURCE_MEM_HOST:
142 bufSize = CalcTotalSizeBytes(m_reqs.mem.hostMem);
143 m_memBuffer = m_alloc->allocHostMem(bufSize, m_reqs.alignBytes);
144 break;
145 case NVCV_RESOURCE_MEM_HOST_PINNED:
146 bufSize = CalcTotalSizeBytes(m_reqs.mem.hostPinnedMem);
147 m_memBuffer = m_alloc->allocHostPinnedMem(bufSize, m_reqs.alignBytes);
148 break;
149 default:
150 throw Exception(NVCV_ERROR_INVALID_ARGUMENT) << "Unknown Resource type " << m_target;
151 break;
152 }
153
154 NVCV_ASSERT(m_memBuffer != nullptr);
155
156 this->exportData(m_data);
157 m_data.length = 0;
158}
159
160Array::~Array()
161{

Callers

nothing calls this directly

Calls 6

exportDataMethod · 0.95
ExceptionClass · 0.85
allocCudaMemMethod · 0.80
allocHostMemMethod · 0.80
allocHostPinnedMemMethod · 0.80
CalcTotalSizeBytesFunction · 0.70

Tested by

no test coverage detected