# QairtSignal

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

C++ wrapper for the QAIRT Signal and Signal Configuration APIs.

- namespace qairt

    - Typedefs

- using SignalCustomConfig = QairtSignal\_CustomConfigHandle\_t

    - Opaque handle type for backend-specific signal custom configuration.

Refer to the backend documentation for valid values and usage.
       This is an alias for the underlying C handle type.
    Copy to clipboard

- class Signal : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt6SignalE), [QairtSignal\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtSignal.html#_CPPv416QairtSignal_V1_t)&gt;

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

Wrapper for a QAIRT [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#classqairt_1_1Signal) object.

Created via @ref Backend::createSignal().
    Copy to clipboard

Public Functions

- Signal() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline void setConfig(const [SignalConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt19SignalConfigurationE) &config)

    - Reconfigure this signal with a new configuration.

- Parameters

    - **config** – The new signal configuration.

- Throws

    - [Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – if the signal is in-use, the handle is invalid, or the configuration is invalid.

- inline void trigger()

    - Trigger the signal action on the associated in-progress API call.

- Throws

    - [Exception](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtApi.html#_CPPv4N5qairt9ExceptionE) – if the signal is idle, the handle is invalid, or the signal type is incompatible with the associated API call.

Private Functions

- inline Signal(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtBackend\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtBackend.html#_CPPv421QairtBackend_Handle_t) backendHandle, QairtSignal\_ConfigHandle\_t configHandle)

    -

Private Members

- friend Api

    - 

- friend Backend

    -

Friends

- *friend class* ::qairt::ApiType

- class SignalConfiguration : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[SignalConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt19SignalConfigurationE), QairtSignal\_ConfigV1\_t&gt;

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

Configuration object for a signal.

Created via @ref Api::make<SignalConfiguration>().
    Copy to clipboard

Public Functions

- SignalConfiguration() noexcept = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline void setTimeoutDurationUs(uint64\_t timeoutDurationUs)

    - Set the timeout duration for this signal configuration.

Configures the signal as a timeout signal. Once set, the signal
       will interrupt the associated API call after the specified duration.
       Tolerance for the actual timeout is platform-dependent and cannot
       be guaranteed.
    
       Setting a timeout is mutually exclusive with abort behavior.
       Call @ref resetTimeoutDurationUs() to restore abort behavior.
    Copy to clipboard

- Parameters

    - **timeoutDurationUs** – Timeout in microseconds. Must be non-zero.

- Throws

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

- inline uint64\_t getTimeoutDurationUs() const

    - Get the configured timeout duration.

- Throws

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

- Returns

    - Timeout in microseconds, or 0 if no timeout has been set (signal is configured for abort behavior).

- inline void resetTimeoutDurationUs()

    - Reset the timeout duration to zero, restoring implicit abort behavior.

- Throws

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

- inline void setCustomConfig([SignalCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt18SignalCustomConfigE) customConfig)

    - Set backend-specific custom configuration for this signal.

Refer to the backend documentation for valid handle values and
       semantics.
    Copy to clipboard

- Parameters

    - **customConfig** – Handle to the backend-specific custom config.

- Throws

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

- inline [SignalCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt18SignalCustomConfigE) getCustomConfig() const

    - Get the backend-specific custom configuration.

- Throws

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

- Returns

    - Handle to the custom config, or nullptr if none was set.

- inline void resetCustomConfig()

    - Clear any previously set custom configuration.

- Throws

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

Private Functions

- inline explicit SignalConfiguration(const std::shared\_ptr&lt;ApiTable&gt; &apiTable)

    -

Private Members

- friend Api

    -

Friends

- *friend class* ::qairt::ApiType

Last Published: Jun 04, 2026

[Previous Topic
QairtLog](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtLog.md) [Next Topic
QairtOpConfig](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtOpConfig.md)