# QairtMem

Note

Some methods in this module are not yet implemented in the current release
and will raise an exception if called. See the C API for full functionality.

**Include:** `#include "QairtCppApi/QairtMem.hpp"`

C++ wrappers for the QAIRT memory descriptor and shape APIs.

Provides type-safe access to memory descriptors and shapes used to
       describe tensor memory for QAIRT operations.
    Copy to clipboard

- namespace qairt

    - Enums

- enum class MemError : std::underlying\_type\_t&lt;[QairtMem\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv416QairtMem_Error_t)&gt;

    - Error codes returned by QAIRT memory operations.

| Enumerator | Description |
| --- | --- |
| `NoError` | Operation succeeded. |
| `NotSupported` | The requested functionality is not supported by the backend. |
| `InvalidArgument` | An argument to the operation was invalid. |
| `InvalidHandle` | The provided handle is not valid. |
| `AlreadyRegistered` | The provided memory has already been registered. |
| `Mapping` | An error occurred during memory mapping. |
| `InvalidShape` | The memory shape is invalid for this backend. |
| `UnsupportedMemtype` | The requested memory type is not supported by the backend. |
| `Undefined` | An undefined or unknown error occurred. |

*Values:*

- enumerator NoError = [QAIRT\_MEM\_NO\_ERROR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t18QAIRT_MEM_NO_ERRORE)

    - 

- enumerator NotSupported = [QAIRT\_MEM\_ERROR\_NOT\_SUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t29QAIRT_MEM_ERROR_NOT_SUPPORTEDE)

    - 

- enumerator InvalidArgument = [QAIRT\_MEM\_ERROR\_INVALID\_ARGUMENT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t32QAIRT_MEM_ERROR_INVALID_ARGUMENTE)

    - 

- enumerator InvalidHandle = [QAIRT\_MEM\_ERROR\_INVALID\_HANDLE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t30QAIRT_MEM_ERROR_INVALID_HANDLEE)

    - 

- enumerator AlreadyRegistered = [QAIRT\_MEM\_ERROR\_ALREADY\_REGISTERED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t34QAIRT_MEM_ERROR_ALREADY_REGISTEREDE)

    - 

- enumerator Mapping = [QAIRT\_MEM\_ERROR\_MAPPING](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t23QAIRT_MEM_ERROR_MAPPINGE)

    - 

- enumerator InvalidShape = [QAIRT\_MEM\_ERROR\_INVALID\_SHAPE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t29QAIRT_MEM_ERROR_INVALID_SHAPEE)

    - 

- enumerator UnsupportedMemtype = [QAIRT\_MEM\_ERROR\_UNSUPPORTED\_MEMTYPE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t35QAIRT_MEM_ERROR_UNSUPPORTED_MEMTYPEE)

    - 

- enumerator Undefined = [QAIRT\_MEM\_ERROR\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N16QairtMem_Error_t25QAIRT_MEM_ERROR_UNDEFINEDE)

    -

- enum class MemType : std::underlying\_type\_t&lt;[Qairt\_MemType\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv415Qairt_MemType_t)&gt;

    - Memory types used to provide data for a QAIRT tensor.

| Enumerator | Description |
| --- | --- |
| `Unsupported` | Memory type is not supported. |
| `Custom` | Memory allocated by a custom backend mechanism. |
| `DmaBuf` | Memory allocated via the DMA-BUF subsystem. |
| `Undefined` | Memory type is undefined. |

*Values:*

- enumerator Unsupported = [QAIRT\_UNSUPPORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t17QAIRT_UNSUPPORTEDE)

    - 

- enumerator Custom = [QAIRT\_MEM\_TYPE\_CUSTOM](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t21QAIRT_MEM_TYPE_CUSTOME)

    - 

- enumerator DmaBuf = [QAIRT\_MEM\_TYPE\_DMA\_BUF](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t22QAIRT_MEM_TYPE_DMA_BUFE)

    - 

- enumerator Undefined = [QAIRT\_MEM\_TYPE\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv4N15Qairt_MemType_t24QAIRT_MEM_TYPE_UNDEFINEDE)

    -

- class MemDescriptor : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE), [QairtMem\_DescriptorV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv423QairtMem_DescriptorV1_t)&gt;

    - *#include &lt;QairtMem.hpp&gt;*

Wrapper for a QAIRT memory descriptor handle.

Public Functions

- MemDescriptor() noexcept = default

    - 

- MemDescriptor(const [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor13MemDescriptorERK13MemDescriptor)&) = delete

    - 

- MemDescriptor([MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor13MemDescriptorERR13MemDescriptor)&&) noexcept = default

    - 

- [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE) &operator=(const [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE)&) = delete

    - 

- [MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE) &operator=([MemDescriptor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptorE)&&) noexcept = default

    - 

- inline void setDmaBuf(int32\_t dmaBufFd, void \*dmaBufData)

    - Set the Direct Memory Access buffer (DMA-BUF) file descriptor and data pointer.

See also

QairtMem\_Descriptor\_setDmaBuf

- Parameters

    - - **dmaBufFd** – **[in]** DMA-BUF file descriptor. Must be a valid open file descriptor, or `QAIRT_MEM_INVALID_FD`.
- **dmaBufData** – **[in]** Pointer to the memory-mapped region produced by `mmap` on *dmaBufFd*. NULL is allowed when a DMA-BUF is not used.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument.

- inline std::pair&lt;int32\_t, void\*&gt; getDmaBuf() const

    - Get the Direct Memory Access buffer (DMA-BUF) file descriptor and data pointer.

See also

QairtMem\_Descriptor\_getDmaBuf

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Pair of (file descriptor, data pointer) previously set via [setDmaBuf()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemDescriptor_1a6af6d5deae8b806a65dd9eb31daf19bf).

- inline void setMemShape(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &memShape)

    - Set the memory shape for this descriptor.

See also

QairtMem\_Descriptor\_setMemShape

- Parameters

    - **memShape** – **[in]** Memory shape describing the rank and per-dimension sizes of the buffer.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument.

- inline [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &getMemShape()

    - Get the memory shape associated with this descriptor.

See also

QairtMem\_Descriptor\_getMemShape

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Reference to the memory shape for this descriptor.

- inline const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &getMemShape() const

    - See also

[MemDescriptor::getMemShape()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemDescriptor_1a21bede973d8dbdbb6f08a2bf1bc257af)

- template&lt;typename T, typename U, typename V&gt;  
inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&lt;[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&gt; &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle&lt;handle\_type&gt; noh)

    - 

- inline explicit ApiType(const std::shared\_ptr&lt;T\_Table&gt; &apiTable)

    - 

- inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeE16copy_table_tag_tRK7ApiType) &other)

    - 

- ApiType() noexcept = default

    - 

- ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeERK7ApiType)&) = delete

    - 

- ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt13MemDescriptor7ApiTypeERR7ApiType)&&) noexcept = default

    - 

- [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete

    - 

- [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt13MemDescriptor7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&&) noexcept = default

    -

Private Functions

- inline void prepareToCross() const

    - 

- inline void updateAfterCross() const

    -

Private Members

- [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable&lt;[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning&lt;[MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)&gt;, &interface\_type::getMemShape, &interface\_type::setMemShape&gt; m\_memShape

    - Shape associated with this memory descriptor.

Friends

- *friend class* Api

- class MemShape : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE), [QairtMem\_ShapeV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtMem.html#_CPPv418QairtMem_ShapeV1_t)&gt;

    - *#include &lt;QairtMem.hpp&gt;*

Wrapper for a QAIRT memory shape handle.

Public Functions

- MemShape() noexcept = default

    - 

- MemShape(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape8MemShapeERK8MemShape)&) = delete

    - 

- MemShape([MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape8MemShapeERR8MemShape)&&) noexcept = default

    - 

- [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &operator=(const [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)&) = delete

    - 

- [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) &operator=([MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE)&&) noexcept = default

    - 

- inline [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShapeE) shallowCopy() const

    - Create a shallow copy of this shape with the same rank, dimensions, and config.

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - A new [MemShape](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemShape) with the same rank, dimensions, and shape config.

- inline std::string &getShapeConfig()

    - Get the backend-specific shape configuration string.

See also

QairtMem\_Shape\_getShapeConfig

- Returns

    - Reference to the shape config string. Empty if none was set.

- inline const std::string &getShapeConfig() const

    - Get the backend-specific shape configuration string.

See also

QairtMem\_Shape\_getShapeConfig

- Returns

    - Const reference to the shape config string. Empty if none was set.

- inline void setShapeConfig(std::string shapeConfig)

    - Set the backend-specific shape configuration string.

Refer to the backend documentation for valid values. NULL is allowed in the underlying C API; pass an empty string to clear.

See also

QairtMem\_Shape\_setShapeConfig

- Parameters

    - **shapeConfig** – **[in]** Backend-specific configuration string for this shape.

- inline uint32\_t getRank() const

    - Get the number of dimensions (rank) of this memory shape.

See also

QairtMem\_Shape\_getRank

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Number of dimensions in this shape.

- inline uint32\_t getDimensionAt(uint32\_t index) const

    - Get the size of a single dimension by index.

See also

QairtMem\_Shape\_getDimensionAt

- Parameters

    - **index** – **[in]** Zero-based dimension index. Must be less than [getRank()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#classqairt_1_1MemShape_1a47477c9afeed0496a2667b5fe1a1cc5e).

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or out-of-range index.

- Returns

    - Size of the dimension at *index*.

- inline std::vector&lt;uint32\_t&gt; &getDimensions()

    - Get the full ordered list of dimension sizes for this shape.

See also

QairtMem\_Shape\_getDimensionAt

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Reference to a vector of dimension sizes in order.

- inline const std::vector&lt;uint32\_t&gt; &getDimensions() const

    - Get the full ordered list of dimension sizes for this shape.

See also

QairtMem\_Shape\_getDimensionAt

- Throws

    - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle.

- Returns

    - Const reference to a vector of dimension sizes in order.

- inline void setDimensions(std::vector&lt;uint32\_t&gt; dimensions)

    - Set the ordered list of dimension sizes for this shape.

See also

QairtMem\_Shape\_setDimensions

- Parameters

    - **dimensions** – **[in]** Ordered dimension sizes. The number of elements determines the rank.

- template&lt;typename T, typename U, typename V&gt;  
inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&lt;[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&gt; &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle&lt;handle\_type&gt; noh)

    - 

- inline explicit ApiType(const std::shared\_ptr&lt;T\_Table&gt; &apiTable)

    - 

- inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeE16copy_table_tag_tRK7ApiType) &other)

    - 

- ApiType() noexcept = default

    - 

- ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeERK7ApiType)&) = delete

    - 

- ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4N5qairt8MemShape7ApiTypeERR7ApiType)&&) noexcept = default

    - 

- [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete

    - 

- [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtMem.html#_CPPv4I000EN5qairt8MemShape7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&&) noexcept = default

    -

Private Functions

- inline void prepareToCross() const

    - 

- inline void updateAfterCross() const

    -

Private Members

- [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable&lt;std::string, &interface\_type::getShapeConfig, &interface\_type::setShapeConfig&gt; m\_shapeConfig

    - Backend-specific shape configuration string.

- mutable std::vector&lt;uint32\_t&gt; m\_dimensions

    - Cached dimension values for this shape.

Friends

- *friend class* Api

Last Published: Jun 04, 2026

[Previous Topic
QairtBuffer](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/QairtBuffer.md) [Next Topic
QairtProfile](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtProfile.md)