# 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<[QairtDevice\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv419QairtDevice_Error_t)> - 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_QairtBackend.html#_CPPv45qairt)::ApiType<[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)> - *#include <QairtDevice.hpp>* Wrapper for a QAIRT [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) handle. Public Functions - inline void setConfig(const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &deviceConfig) - Set the configuration for this device. See also [QairtDevice\_setConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevice_8h_1a18bdb812306092f8ca0d00d74daf6436) - Parameters - **deviceConfig** – **[in]** [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) configuration to apply. Must be a valid, fully constructed object. - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument. - inline [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &getConfig() - Get the configuration associated with this device. See also [QairtDevice\_getConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevice_8h_1ae4c5376d0e6c7725d4e1e443cad06070) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Reference to the device configuration. - inline const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &getConfig() const - See also [Device::getConfig()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device_1acc747893389a1294fd0b4f21b119e069) - inline [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) getInfo() - Get platform info describing the hardware visible to QAIRT. Convenience wrapper that lazily constructs a [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DevicePlatformInfoProvider) tied to this [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device)’s lifetime and queries it. The returned platform info is non-owning and remains valid for as long as this [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) lives. See also [QairtDevice\_PlatformInfoProvider\_getPlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1a39e4e53c4ce6597aab1207929c584320) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid argument, unsupported feature, or insufficient memory. - Returns - Platform info object enumerating the available hardware devices. - inline [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE) getInfrastructure() const - Get device hardware infrastructure interface object. Optional capability; support is advertised via QairtCapability. If supported, please refer to documentation and/or header file provided by the backend for usage information. Convenience wrapper that dispatches through the [DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DeviceInfrastructureProvider) in the API table without holding an instance. See also [QairtDevice\_InfrastructureProvider\_getInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceInfrastructure_8h_1ac73c572617685215e6a0a82a340ce561) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid argument, unsupported feature, or insufficient memory. - Returns - Infrastructure interface object. The handle returned is backend-owned memory. - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt6Device7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[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)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &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 - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt6Device7ApiTypeERR7ApiType) &&other) noexcept - - [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 - - inline [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) &&other) noexcept - Private Functions - inline [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE) &ensurePlatformInfoProvider() - - inline void prepareToCross() const - - inline void updateAfterCross() const - - inline Device(const std::shared\_ptr<ApiTable> &apiTable, const [Log](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv4N5qairt3LogE) &log, const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &config) - Private Members - [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable<[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning<[DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE)>, &interface\_type::getConfig, &interface\_type::setConfig> m\_config - - [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE) m\_platformInfoProvider - Friends - *friend class* Api - class DeviceConfiguration : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[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)> - *#include <QairtDevice.hpp>* Configuration object for device creation. Construct via @ref Api::make() and pass to the device creation API. Holds platform info and optional backend-specific custom config. Copy to clipboard Public Functions - DeviceConfiguration() noexcept = default - - DeviceConfiguration(const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfiguration19DeviceConfigurationERK19DeviceConfiguration)&) = delete - - DeviceConfiguration([DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfiguration19DeviceConfigurationERR19DeviceConfiguration)&&) noexcept = default - - [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &operator=([DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE)&&) noexcept = default - - [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE) &operator=(const [DeviceConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt19DeviceConfigurationE)&) = delete - - 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_QairtBackend.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_QairtBackend.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_QairtBackend.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_QairtBackend.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_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle or invalid argument. Private Functions - inline explicit DeviceConfiguration(const std::shared\_ptr<ApiTable> &apiTable) - - inline void prepareToCross() const - - inline void updateAfterCross() const - Private Members - [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::crossable<[detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning<[DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE)>, &interface\_type::getPlatformInfo, &interface\_type::setPlatformInfo> m\_platformInfo - Friends - *friend class* Api - class DeviceCustomConfig : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::CustomConfigType - *#include <QairtDevice.hpp>* 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 ~DeviceCustomConfig() = default - - 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. Protected Functions - DeviceCustomConfig() = default - - DeviceCustomConfig(const [DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfig18DeviceCustomConfigERK18DeviceCustomConfig)&) = default - - DeviceCustomConfig([DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfig18DeviceCustomConfigERR18DeviceCustomConfig)&&) noexcept = default - - [DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfigE) &operator=(const [DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfigE)&) = default - - [DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfigE) &operator=([DeviceCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DeviceCustomConfigE)&&) noexcept = default - - class DeviceCustomConfiguration - *#include <QairtDevice.hpp>* Abstract base class for backend-specific collections of device custom configurations. Subclass this to provide multiple backend-specific configuration handles to DeviceConfiguration::setCustomConfigs(). Refer to the backend documentation for the concrete subclass and valid handle values. Public Functions - virtual ~DeviceCustomConfiguration() = default - - virtual std::vector<[QairtDevice\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv432QairtDevice_CustomConfigHandle_t)> getCustomConfigs() const = 0 - Get the list of underlying C handles for this custom configuration collection. - Returns - Vector of backend-specific device custom configuration handles. Protected Functions - DeviceCustomConfiguration() = default - - DeviceCustomConfiguration(const [DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfiguration25DeviceCustomConfigurationERK25DeviceCustomConfiguration)&) = default - - DeviceCustomConfiguration([DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfiguration25DeviceCustomConfigurationERR25DeviceCustomConfiguration)&&) noexcept = default - - [DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfigurationE) &operator=(const [DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfigurationE)&) = default - - [DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfigurationE) &operator=([DeviceCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt25DeviceCustomConfigurationE)&&) noexcept = default - - class DeviceHardwareCoreExtendedInfo - *#include <QairtDevice.hpp>* 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_QairtBackend.html#_CPPv45qairt)::ApiType<[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)> - *#include <QairtDevice.hpp>* 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_QairtBackend.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_QairtBackend.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 - - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfo7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfo7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt22DeviceHardwareCoreInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Friends - *friend class* Api - *friend class* ::qairt::ApiType - class DeviceHardwareDeviceInfo : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[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)> - *#include <QairtDevice.hpp>* 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_QairtBackend.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_QairtBackend.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_QairtBackend.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<[DeviceHardwareCoreInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt22DeviceHardwareCoreInfoE)> getCores() const - Get the compute cores associated with this hardware device. Each call queries the backend and constructs a fresh, non-owning view of the backend-owned core info objects. The returned vector is independent of the [DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DeviceHardwareDeviceInfo) instance. See also [QairtDevice\_HardwareDeviceInfo\_getHardwareCoreInfoAt](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1ab62bcf964e9aa52351a415caf5bc060c) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Vector of [DeviceHardwareCoreInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DeviceHardwareCoreInfo) objects. - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfo7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfo7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt24DeviceHardwareDeviceInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Friends - *friend class* Api - *friend class* ::qairt::ApiType - class DeviceInfrastructure - *#include <QairtDevice.hpp>* Typed wrapper for a backend-specific device infrastructure handle. Lightweight, copyable value type that hides the raw @c QairtDevice_InfrastructureHandle_t. The underlying handle is backend-owned memory; refer to the backend's documentation for usage and lifetime semantics. Returned by @ref Device::getInfrastructure() and @ref DeviceInfrastructureProvider::getInfrastructure(). Copy to clipboard Public Functions - DeviceInfrastructure() noexcept = default - - DeviceInfrastructure(const [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructure20DeviceInfrastructureERK20DeviceInfrastructure)&) noexcept = default - - DeviceInfrastructure([DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructure20DeviceInfrastructureERR20DeviceInfrastructure)&&) noexcept = default - - [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE) &operator=(const [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE)&) noexcept = default - - [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE) &operator=([DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE)&&) noexcept = default - - inline explicit DeviceInfrastructure([QairtDevice\_InfrastructureHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_InfrastructureHandle_t) handle) noexcept - - inline [QairtDevice\_InfrastructureHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_InfrastructureHandle_t) getHandle() const noexcept - Get the underlying QAIRT C handle for use with backend-specific APIs. - inline explicit operator bool() const noexcept - True if this wraps a non-null handle. Private Members - [QairtDevice\_InfrastructureHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv434QairtDevice_InfrastructureHandle_t) m\_handle = {} - - class DeviceInfrastructureProvider : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProviderE), [QairtDevice\_InfrastructureProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv438QairtDevice_InfrastructureProviderV1_t)> - *#include <QairtDevice.hpp>* Wrapper for the QAIRT [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) Infrastructure Provider. Exposes the backend-agnostic entry point for retrieving a backend-specific device infrastructure handle. Unlike @ref DevicePlatformInfoProvider, this provider has no instance state or lifecycle (no @c create / @c free); it is a pure dispatcher. Most users obtain the infrastructure handle through @ref Device::getInfrastructure() instead of constructing this class directly. Copy to clipboard Public Functions - DeviceInfrastructureProvider() noexcept = default - - DeviceInfrastructureProvider(const [DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProvider28DeviceInfrastructureProviderERK28DeviceInfrastructureProvider)&) = delete - - DeviceInfrastructureProvider([DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProvider28DeviceInfrastructureProviderERR28DeviceInfrastructureProvider)&&) noexcept = default - - [DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProviderE) &operator=(const [DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProviderE)&) = delete - - [DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProviderE) &operator=([DeviceInfrastructureProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProviderE)&&) noexcept = default - - inline [DeviceInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt20DeviceInfrastructureE) getInfrastructure() const - Get device hardware infrastructure interface object. Optional capability; support is advertised via QairtCapability. If supported, please refer to documentation and/or header file provided by the backend for usage information. See also [QairtDevice\_InfrastructureProvider\_getInfrastructure](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDeviceInfrastructure_8h_1ac73c572617685215e6a0a82a340ce561) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid argument, unsupported feature, or insufficient memory. - Returns - Infrastructure interface object. The handle returned is backend-owned memory. - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProvider7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt28DeviceInfrastructureProvider7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt28DeviceInfrastructureProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Friends - *friend class* Api - class DevicePlatformInfo : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[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)> - *#include <QairtDevice.hpp>* 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 - Get the number of hardware devices on this platform. See also [QairtDevice\_PlatformInfo\_getNumHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1a6bfc8f35636fc6ccf91e6b6a96efd10f) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Number of [DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DeviceHardwareDeviceInfo) entries. - inline std::vector<[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE)> getHwDevices() const - Get the hardware devices on this platform. Each call queries the backend and constructs a fresh, non-owning view of the backend-owned device info objects. The returned vector is independent of the [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DevicePlatformInfo) instance. See also [QairtDevice\_PlatformInfo\_getHardwareDeviceInfoAt](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1a0b58d346d0632e9586ae822a4304ae39) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle. - Returns - Vector of [DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1DeviceHardwareDeviceInfo) objects. - inline void setHwDevices(std::vector<[DeviceHardwareDeviceInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt24DeviceHardwareDeviceInfoE)> hwDevices) - - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt18DevicePlatformInfo7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[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)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &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 - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfo7ApiTypeERR7ApiType) &&other) noexcept - - [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 - - inline [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) &&other) noexcept - Private Functions - inline void prepareToCross() const - - inline void updateAfterCross() const - Friends - *friend class* Api - *friend class* ::qairt::ApiType - class DevicePlatformInfoProvider : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::ApiType<[DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE), [QairtDevice\_PlatformInfoProviderV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#_CPPv436QairtDevice_PlatformInfoProviderV1_t)> - *#include <QairtDevice.hpp>* Wrapper for the QAIRT [Device](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#classqairt_1_1Device) Platform [Info](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtInfo.html#classqairt_1_1Info) Provider handle. Produces @ref DevicePlatformInfo handles via @ref getPlatformInfo(). The returned platform info is non-owning; its handle remains valid only as long as the provider is alive. Most users obtain platform info through @ref Device::getInfo(), which manages a provider's lifetime automatically. Copy to clipboard Public Functions - DevicePlatformInfoProvider() noexcept = default - - DevicePlatformInfoProvider(const [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProvider26DevicePlatformInfoProviderERK26DevicePlatformInfoProvider)&) = delete - - DevicePlatformInfoProvider([DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProvider26DevicePlatformInfoProviderERR26DevicePlatformInfoProvider)&&) noexcept = default - - [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE) &operator=(const [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE)&) = delete - - [DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE) &operator=([DevicePlatformInfoProvider](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProviderE)&&) noexcept = default - - inline [DevicePlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt18DevicePlatformInfoE) getPlatformInfo() - Get a platform info object describing the hardware visible to QAIRT. The returned platform info is non-owning. Its underlying handle is owned by this provider; freeing the provider invalidates any platform info obtained from it. See also [QairtDevice\_PlatformInfoProvider\_getPlatformInfo](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtDevice.html#QairtDevicePlatformInfo_8h_1a39e4e53c4ce6597aab1207929c584320) - Throws - [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtBackend.html#_CPPv45qairt)::[Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – on invalid handle, invalid argument, unsupported feature, or insufficient memory. - Returns - Platform info object enumerating the available hardware devices. - template<typename T, typename U, typename V> inline ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)<[T](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [U](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE), [V](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)> &parent, [detail](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtTypeTraits.html#_CPPv4N5qairt6detailE)::non\_owning\_handle<handle\_type> noh) - - inline explicit ApiType(const std::shared\_ptr<T\_Table> &apiTable) - - inline ApiType(copy\_table\_tag\_t, const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProvider7ApiTypeE16copy_table_tag_tRK7ApiType) &other) - - ApiType() noexcept = default - - ApiType(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiType)&) = delete - - inline ApiType([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4N5qairt26DevicePlatformInfoProvider7ApiTypeERR7ApiType) &&other) noexcept - - [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=(const [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE)&) = delete - - inline [ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &operator=([ApiType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtDevice.html#_CPPv4I000EN5qairt26DevicePlatformInfoProvider7ApiTypeERK7ApiTypeI1T1U1VEN6detail17non_owning_handleI11handle_typeEE) &&other) noexcept - Private Functions - inline explicit DevicePlatformInfoProvider(const std::shared\_ptr<ApiTable> &apiTable) - - inline DevicePlatformInfoProvider(const std::shared\_ptr<ApiTable> &apiTable, const [Log](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv4N5qairt3LogE) &log) - Friends - *friend class* Api - *friend class* ::qairt::ApiType Last Published: Aug 06, 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)