# QairtDevice

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/QairtDevice.hpp"`

C++ wrapper for the QAIRT Device API.

- namespace qairt

    - Enums

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

    - Error codes returned by QAIRT device operations.

| Enumerator | Description |
| --- | --- |
| `NoError` | Operation succeeded. |
| `UnsupportedFeature` | Requested feature is not yet supported. |
| `MemAlloc` | Memory allocation or deallocation failure. |
| `InvalidArgument` | An argument to the operation was invalid. |
| `OutOfRange` | Requested element is out of range. |
| `InvalidHandle` | The provided handle is not valid. |
| `InvalidConfig` | One or more configuration values are invalid. |
| `HardwareUnavailable` | Requested hardware is unavailable. |
| `AssociatedToContext` | [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) is associated to an existing context. |
| `Undefined` | An undefined or unknown error occurred. |

*Values:*

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

    - 

- enumerator UnsupportedFeature = [QAIRT\_DEVICE\_ERROR\_UNSUPPORTED\_FEATURE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t38QAIRT_DEVICE_ERROR_UNSUPPORTED_FEATUREE)

    - 

- enumerator MemAlloc = [QAIRT\_DEVICE\_ERROR\_MEM\_ALLOC](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t28QAIRT_DEVICE_ERROR_MEM_ALLOCE)

    - 

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

    - 

- enumerator OutOfRange = [QAIRT\_DEVICE\_ERROR\_OUT\_OF\_RANGE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t31QAIRT_DEVICE_ERROR_OUT_OF_RANGEE)

    - 

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

    - 

- enumerator InvalidConfig = [QAIRT\_DEVICE\_ERROR\_INVALID\_CONFIG](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t33QAIRT_DEVICE_ERROR_INVALID_CONFIGE)

    - 

- enumerator HardwareUnavailable = [QAIRT\_DEVICE\_ERROR\_HARDWARE\_UNAVAILABLE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t39QAIRT_DEVICE_ERROR_HARDWARE_UNAVAILABLEE)

    - 

- enumerator AssociatedToContext = [QAIRT\_DEVICE\_ERROR\_ASSOCIATED\_TO\_CONTEXT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv4N19QairtDevice_Error_t40QAIRT_DEVICE_ERROR_ASSOCIATED_TO_CONTEXTE)

    - 

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

    -

- class Device : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt6DeviceE), [QairtDevice\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv416QairtDevice_V1_t)&gt;

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

Wrapper for a QAIRT [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) handle.

Note

Not yet implemented; all methods throw [qairt::Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#classqairt_1_1Exception) at runtime.

Public Functions

- inline void setConfig(const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &deviceConfig)

    - 

- inline [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &getConfig()

    - 

- inline [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) getInfo()

    - 

- template&lt;typename T, typename U, typename V&gt;  
inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt6Device7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&lt;[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt6Device7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt6Device7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt6Device7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_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_QairtDevice.html#_CPPv4N5qairt6Device7ApiTypeE16copy_table_tag_tRK7ApiType) &other)

    - 

- ApiType() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    -

Friends

- *friend class* Api

- class DeviceConfiguration : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE), [QairtDevice\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv422QairtDevice_ConfigV1_t)&gt;

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

Configuration object for device creation.

Construct via @ref Api::make<DeviceConfiguration>() and pass to the device
       creation API. Holds platform info and optional backend-specific custom config.
    Copy to clipboard

Public Functions

- inline void setCustomConfig(const [DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfigE) &config)

    - Set backend-specific custom configuration for this device configuration.

See also

[QairtDevice\_Config\_setCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a2270caf1388314c45069ec92c53a50e6)

- Parameters

    - **config** – **[in]** Backend-specific custom configuration object.

- 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 void clearCustomConfigs()

    - Clear all backend-specific custom configurations from this device configuration.

See also

[QairtDevice\_Config\_clearCustomConfigs](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a5aa7898b6b1c8d0869852068243f7797)

- 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.

- inline [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) &getPlatformInfo()

    - Get the platform info associated with this device configuration.

See also

[QairtDevice\_Config\_getPlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a9e55563cfd1ef240abb0ee7be418f7bc)

- 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 platform info for this configuration.

- inline const [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) &getPlatformInfo() const

    - Get the platform info associated with this device configuration.

See also

[QairtDevice\_Config\_getPlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a9e55563cfd1ef240abb0ee7be418f7bc)

- 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 the platform info for this configuration.

- inline void setPlatformInfo(const [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) &platformInfo)

    - Set the platform info for this device configuration.

See also

[QairtDevice\_Config\_setPlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1ad065d570cb19b18d01a040801a06ce19)

- Parameters

    - **platformInfo** – **[in]** Platform info describing the hardware devices to request. Must be a valid, fully configured object.

- 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.

- template&lt;typename T, typename U, typename V&gt;  
inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&lt;[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_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_QairtDevice.html#_CPPv4N5qairt19DeviceConfiguration7ApiTypeE16copy_table_tag_tRK7ApiType) &other)

    - 

- ApiType() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

- [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt19DeviceConfiguration7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_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;[DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE)&gt;, &interface\_type::getPlatformInfo, &interface\_type::setPlatformInfo&gt; m\_platformInfo

    -

Friends

- *friend class* Api

- class DeviceCustomConfig : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::CustomConfigType

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

Abstract base class for backend-specific device custom configuration.

Subclass to provide a backend-specific custom configuration handle; pass
       an instance to @ref DeviceConfiguration::setCustomConfig(). Refer to the
       backend documentation for required subclass implementations.
    Copy to clipboard

Public Functions

- virtual [QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t) getCustomConfigHandle() const = 0

    - Get the underlying C API custom configuration handle.

Implement this method in a backend-specific subclass to return the handle that will be passed to [QairtDevice\_Config\_setCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a2270caf1388314c45069ec92c53a50e6). Refer to the backend documentation for required subclass implementations and valid handle values.

See also

[QairtDevice\_Config\_setCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceConfig_8h_1a2270caf1388314c45069ec92c53a50e6)

- Returns

    - Backend-specific custom configuration handle.

- class DeviceHardwareCoreExtendedInfo

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

Placeholder for future backend-specific extended core information.

Reserved for future use; no members are defined at this time.
    Copy to clipboard

- class DeviceHardwareCoreInfo : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[DeviceHardwareCoreInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfoE), [QairtDevice\_HardwareCoreInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_HardwareCoreInfoV1_t)&gt;

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

Hardware core information for a single compute core on a device.

Obtained as a sub-object of @ref DeviceHardwareDeviceInfo. Core objects
       are not constructed directly; they are returned by the device info API.
    Copy to clipboard

Public Functions

- DeviceHardwareCoreInfo() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline uint32\_t getCoreId() const

    - Get the hardware core identifier.

See also

[QairtDevice\_HardwareCoreInfo\_getCoreId](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1ab057a6267b0b871710922bc2e2818b3a)

- 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

    - Numeric core ID for this core. Use `QAIRT_DEVICE_DEFAULT_CORE_ID` to select the default core.

- inline uint32\_t getCoreType() const

    - Get the hardware core type.

See also

[QairtDevice\_HardwareCoreInfo\_getCoreType](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1af7c920345bf5e573393a9b8d1910b804)

- 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

    - Backend-defined numeric type code identifying the kind of compute core.

- inline [DeviceHardwareCoreExtendedInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt30DeviceHardwareCoreExtendedInfoE) getExtendedInfo() const

    -

Friends

- *friend class* Api

- class DeviceHardwareDeviceInfo : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE), [QairtDevice\_HardwareDeviceInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_HardwareDeviceInfoV1_t)&gt;

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

Hardware device information, including identity and core topology.

Obtained as a sub-object of @ref DevicePlatformInfo. Device info objects
       are not constructed directly; they are returned by the platform info API.
    Copy to clipboard

Public Functions

- DeviceHardwareDeviceInfo() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline uint32\_t getDeviceId() const

    - Get the hardware device identifier.

See also

[QairtDevice\_HardwareDeviceInfo\_getDeviceId](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1adf8c90cdbeb54bd5178c5aab0a571084)

- 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

    - Numeric device ID for this hardware device. Use `QAIRT_DEVICE_DEFAULT_DEVICE_ID` to select the default device.

- inline uint32\_t getDeviceType() const

    - Get the hardware device type.

See also

[QairtDevice\_HardwareDeviceInfo\_getDeviceType](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1abc81fc1a506f3f17253a1a14974689d2)

- 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

    - Backend-defined numeric type code identifying the class of hardware device.

- inline uint32\_t getNumCores() const

    - Get the number of compute cores in this hardware device.

See also

[QairtDevice\_HardwareDeviceInfo\_getNumCoreInfos](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1ad859cfcb66840134b2b522183e457ded)

- 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 core info entries reported for this device.

- inline std::vector&lt;[DeviceHardwareCoreInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfoE)&gt; &getCores()

    - 

- inline const std::vector&lt;[DeviceHardwareCoreInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfoE)&gt; &getCores() const

    -

Friends

- *friend class* Api

- class DevicePlatformInfo : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE), [QairtDevice\_PlatformInfoV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv428QairtDevice_PlatformInfoV1_t)&gt;

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

Platform-level hardware information, enumerating the devices present on the platform.

Obtained via @ref DeviceConfiguration::getPlatformInfo().
    Copy to clipboard

Public Functions

- inline size\_t getNumHwDevices() const

    - 

- inline std::vector&lt;[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE)&gt; &getHwDevices()

    - 

- inline const std::vector&lt;[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE)&gt; &getHwDevices() const

    - 

- inline void setHwDevices(std::vector&lt;[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE)&gt; hwDevices)

    - 

- template&lt;typename T, typename U, typename V&gt;  
inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt18DevicePlatformInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&lt;[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt18DevicePlatformInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt18DevicePlatformInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt18DevicePlatformInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_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_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfo7ApiTypeE16copy_table_tag_tRK7ApiType) &other)

    - 

- ApiType() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    -

Private Functions

- inline void prepareToCross() const

    - 

- inline void updateAfterCross() const

    -

Friends

- *friend class* Api

Last Published: Jun 04, 2026

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