# QairtGraph

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

C++ wrapper for the QAIRT graph API.

- namespace qairt

    - Enums

- enum class Priority : std::underlying\_type\_t&lt;[Qairt\_Priority\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv416Qairt_Priority_t)&gt;

    - Execution priority levels for graph scheduling.

| Enumerator | Description |
| --- | --- |
| `Low` | Lowest scheduling priority. |
| `NormalLow` | Below-normal scheduling priority. |
| `Normal` | Normal scheduling priority. |
| `Default` | Default scheduling priority, equivalent to Normal. |
| `NormalHigh` | Above-normal scheduling priority. |
| `High` | High scheduling priority. |
| `HighPlus` | Higher than High scheduling priority. |
| `Critical` | Critical scheduling priority. |
| `CriticalPlus` | Highest scheduling priority. |
| `Undefined` | Priority is not set or unrecognized. |

*Values:*

- enumerator Low = [QAIRT\_PRIORITY\_LOW](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t18QAIRT_PRIORITY_LOWE)

    - 

- enumerator NormalLow = [QAIRT\_PRIORITY\_NORMAL\_LOW](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t25QAIRT_PRIORITY_NORMAL_LOWE)

    - 

- enumerator Normal = [QAIRT\_PRIORITY\_NORMAL](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t21QAIRT_PRIORITY_NORMALE)

    - 

- enumerator Default = [QAIRT\_PRIORITY\_DEFAULT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t22QAIRT_PRIORITY_DEFAULTE)

    - 

- enumerator NormalHigh = [QAIRT\_PRIORITY\_NORMAL\_HIGH](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t26QAIRT_PRIORITY_NORMAL_HIGHE)

    - 

- enumerator High = [QAIRT\_PRIORITY\_HIGH](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t19QAIRT_PRIORITY_HIGHE)

    - 

- enumerator HighPlus = [QAIRT\_PRIORITY\_HIGH\_PLUS](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t24QAIRT_PRIORITY_HIGH_PLUSE)

    - 

- enumerator Critical = [QAIRT\_PRIORITY\_CRITICAL](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t23QAIRT_PRIORITY_CRITICALE)

    - 

- enumerator CriticalPlus = [QAIRT\_PRIORITY\_CRITICAL\_PLUS](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t28QAIRT_PRIORITY_CRITICAL_PLUSE)

    - 

- enumerator Undefined = [QAIRT\_PRIORITY\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv4N16Qairt_Priority_t24QAIRT_PRIORITY_UNDEFINEDE)

    -

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

    - Error codes returned by QAIRT graph operations.

| Enumerator | Description |
| --- | --- |
| `MinError` | Sentinel for the minimum error value. |
| `NoError` | Operation succeeded. |
| `UnsupportedFeature` | An optional API feature is not yet supported. |
| `MemAlloc` | Memory allocation failure in graph processing. |
| `General` | Unclassified graph error; any graph API may return this. |
| `InvalidArguemnt` | An argument to the graph API is invalid. |
| `InvalidHandle` | The provided graph handle is not valid. |
| `GraphDoesNotExist` | No graph with the specified name is registered in the backend. |
| `InvalidName` | [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) name is NULL, empty, or duplicates an existing name. |
| `InvalidTensor` | A tensor handle is NULL or invalid. |
| `InvalidOpConfig` | One or more elements of the op configuration are invalid. |
| `SetProfile` | Failed to bind the profile handle to the graph. |
| `UnconnectedNode` | A node was added before one or more of its input-producing nodes. |
| `CreateFailed` | [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) creation failed. |
| `OtimizationFailed` | [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) optimization failed with the specified ops or configuration. |
| `FinalizeFailed` | [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) finalization failed. |
| `GraphNotFinalized` | Attempted to execute a graph that has not been finalized. |
| `GraphFinalized` | Attempted to modify a graph after finalization. |
| `ExecutionAsyncFifoFull` | Async execution queue is full; no new requests can be registered. |
| `SignalInUse` | The supplied signal object is already in use by another call. |
| `Aborted` | Call aborted early due to a signal trigger. |
| `ProfileInUse` | The profile handle is already bound to another graph. |
| `TimedOut` | Call aborted early due to a signal timeout. |
| `Subgraph` | Operation is not permitted on a subgraph. |
| `Disabled` | The graph was disabled during context deserialization. |
| `DynamicTensorShape` | Dynamic tensor shape exceeded configured limits. |
| `TensorSparsity` | [Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#classqairt_1_1Tensor) sparsity constraint violation. |
| `EarlyTermination` | [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) execution terminated early due to op-defined behavior. |
| `InvalidContext` | The context associated with this graph has already been freed. |
| `MaxError` | Sentinel for the maximum error value. |
| `Undefined` | Unused; present to ensure a 32-bit enum size. |

*Values:*

- enumerator MinError = [QAIRT\_GRAPH\_MIN\_ERROR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t21QAIRT_GRAPH_MIN_ERRORE)

    - 

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

    - 

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

    - 

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

    - 

- enumerator General = [QAIRT\_GRAPH\_ERROR\_GENERAL](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t25QAIRT_GRAPH_ERROR_GENERALE)

    - 

- enumerator InvalidArguemnt = [QAIRT\_GRAPH\_ERROR\_INVALID\_ARGUMENT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t34QAIRT_GRAPH_ERROR_INVALID_ARGUMENTE)

    - 

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

    - 

- enumerator GraphDoesNotExist = [QAIRT\_GRAPH\_ERROR\_GRAPH\_DOES\_NOT\_EXIST](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t38QAIRT_GRAPH_ERROR_GRAPH_DOES_NOT_EXISTE)

    - 

- enumerator InvalidName = [QAIRT\_GRAPH\_ERROR\_INVALID\_NAME](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t30QAIRT_GRAPH_ERROR_INVALID_NAMEE)

    - 

- enumerator InvalidTensor = [QAIRT\_GRAPH\_ERROR\_INVALID\_TENSOR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t32QAIRT_GRAPH_ERROR_INVALID_TENSORE)

    - 

- enumerator InvalidOpConfig = [QAIRT\_GRAPH\_ERROR\_INVALID\_OP\_CONFIG](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t35QAIRT_GRAPH_ERROR_INVALID_OP_CONFIGE)

    - 

- enumerator SetProfile = [QAIRT\_GRAPH\_ERROR\_SET\_PROFILE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t29QAIRT_GRAPH_ERROR_SET_PROFILEE)

    - 

- enumerator UnconnectedNode = [QAIRT\_GRAPH\_ERROR\_UNCONNECTED\_NODE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t34QAIRT_GRAPH_ERROR_UNCONNECTED_NODEE)

    - 

- enumerator CreateFailed = [QAIRT\_GRAPH\_ERROR\_CREATE\_FAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t31QAIRT_GRAPH_ERROR_CREATE_FAILEDE)

    - 

- enumerator OtimizationFailed = [QAIRT\_GRAPH\_ERROR\_OPTIMIZATION\_FAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t37QAIRT_GRAPH_ERROR_OPTIMIZATION_FAILEDE)

    - 

- enumerator FinalizeFailed = [QAIRT\_GRAPH\_ERROR\_FINALIZE\_FAILED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t33QAIRT_GRAPH_ERROR_FINALIZE_FAILEDE)

    - 

- enumerator GraphNotFinalized = [QAIRT\_GRAPH\_ERROR\_GRAPH\_NOT\_FINALIZED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t37QAIRT_GRAPH_ERROR_GRAPH_NOT_FINALIZEDE)

    - 

- enumerator GraphFinalized = [QAIRT\_GRAPH\_ERROR\_GRAPH\_FINALIZED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t33QAIRT_GRAPH_ERROR_GRAPH_FINALIZEDE)

    - 

- enumerator ExecutionAsyncFifoFull = [QAIRT\_GRAPH\_ERROR\_EXECUTION\_ASYNC\_FIFO\_FULL](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t43QAIRT_GRAPH_ERROR_EXECUTION_ASYNC_FIFO_FULLE)

    - 

- enumerator SignalInUse = [QAIRT\_GRAPH\_ERROR\_SIGNAL\_IN\_USE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t31QAIRT_GRAPH_ERROR_SIGNAL_IN_USEE)

    - 

- enumerator Aborted = [QAIRT\_GRAPH\_ERROR\_ABORTED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t25QAIRT_GRAPH_ERROR_ABORTEDE)

    - 

- enumerator ProfileInUse = [QAIRT\_GRAPH\_ERROR\_PROFILE\_IN\_USE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t32QAIRT_GRAPH_ERROR_PROFILE_IN_USEE)

    - 

- enumerator TimedOut = [QAIRT\_GRAPH\_ERROR\_TIMED\_OUT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t27QAIRT_GRAPH_ERROR_TIMED_OUTE)

    - 

- enumerator Subgraph = [QAIRT\_GRAPH\_ERROR\_SUBGRAPH](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t26QAIRT_GRAPH_ERROR_SUBGRAPHE)

    - 

- enumerator Disabled = [QAIRT\_GRAPH\_ERROR\_DISABLED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t26QAIRT_GRAPH_ERROR_DISABLEDE)

    - 

- enumerator DynamicTensorShape = [QAIRT\_GRAPH\_ERROR\_DYNAMIC\_TENSOR\_SHAPE](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t38QAIRT_GRAPH_ERROR_DYNAMIC_TENSOR_SHAPEE)

    - 

- enumerator TensorSparsity = [QAIRT\_GRAPH\_ERROR\_TENSOR\_SPARSITY](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t33QAIRT_GRAPH_ERROR_TENSOR_SPARSITYE)

    - 

- enumerator EarlyTermination = [QAIRT\_GRAPH\_ERROR\_EARLY\_TERMINATION](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t35QAIRT_GRAPH_ERROR_EARLY_TERMINATIONE)

    - 

- enumerator InvalidContext = [QAIRT\_GRAPH\_ERROR\_INVALID\_CONTEXT](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t33QAIRT_GRAPH_ERROR_INVALID_CONTEXTE)

    - 

- enumerator MaxError = [QAIRT\_GRAPH\_MAX\_ERROR](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N18QairtGraph_Error_t21QAIRT_GRAPH_MAX_ERRORE)

    - 

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

    -

- enum class GraphProfilingState : std::underlying\_type\_t&lt;[QairtGraph\_ProfilingState\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv427QairtGraph_ProfilingState_t)&gt;

    - Profiling enabled/disabled state for a graph.

| Enumerator | Description |
| --- | --- |
| `Enabled` | Profiling is active for this graph. |
| `Disabled` | Profiling is not active for this graph. |
| `Undefined` | Unused; present to ensure a 32-bit enum size. |

*Values:*

- enumerator Enabled = [QAIRT\_GRAPH\_PROFILING\_STATE\_ENABLED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N27QairtGraph_ProfilingState_t35QAIRT_GRAPH_PROFILING_STATE_ENABLEDE)

    - 

- enumerator Disabled = [QAIRT\_GRAPH\_PROFILING\_STATE\_DISABLED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N27QairtGraph_ProfilingState_t36QAIRT_GRAPH_PROFILING_STATE_DISABLEDE)

    - 

- enumerator Undefined = [QAIRT\_GRAPH\_PROFILING\_STATE\_UNDEFINED](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv4N27QairtGraph_ProfilingState_t37QAIRT_GRAPH_PROFILING_STATE_UNDEFINEDE)

    -

- enum class TensorSetMemType

    - *Values:*

- class Graph : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt5GraphE), [QairtGraph\_V1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv415QairtGraph_V1_t)&gt;

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

Wrapper for a QAIRT graph handle.

Obtained via Context::createGraph() or Context::retrieveGraph().
    Copy to clipboard

Public Functions

- ~Graph() = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline void createGraphTensor([Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE) &tensor)

    - Create a tensor registered with this graph.

See also

QairtGraph\_createGraphTensor

- Parameters

    - **tensor** – **[inout]** Pre-configured tensor to register. The backend assigns a tensor ID directly to this handle as part of this call.

- 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 graph or tensor handle
- invalid or unsupported tensor parameters
- memory allocation failure

- inline void updateGraphTensors(const std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)\*&gt; &tensors)

    - Update previously created graph tensors with new data or quantization parameters.

Valid fields to update depend on tensor type:

- UPDATEABLE\_STATIC tensors: data and quantization parameters.
- UPDATEABLE\_NATIVE, UPDATEABLE\_APP\_READ, UPDATEABLE\_APP\_WRITE, UPDATEABLE\_APP\_READWRITE tensors: quantization parameters only.

See also

QairtGraph\_updateGraphTensors

- Parameters

    - **tensors** – **[in]** Array of pointers to tensors to update. Each tensor must carry the ID assigned during creation. Must not be empty.

- 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 graph or tensor handle
- incompatible tensor update
- graph not finalized

- inline void addNode(const [OpConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtOpConfig.html#_CPPv4N5qairt8OpConfigE) &opConfig)

    - Add an operation node to this graph.

Nodes must be added in dependency order: all native input tensors to the node must be outputs of a previously added node.

See also

QairtGraph\_addNode

- Parameters

    - **opConfig** – **[in]** Operation configuration describing the node to add. All tensors referenced must have been created via [createGraphTensor()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1aea5f2c4634303c1543b077ce44ddbcee).

- 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 graph handle
- invalid op configuration or tensor reference
- graph already finalized
- node added out of dependency order

- inline [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt5GraphE) createSubgraph(const std::string &graphName)

    - Create a named subgraph as a child of this graph.

A subgraph cannot be finalized or executed directly. Only a top-level graph with no parent can be finalized and executed. Nodes and tensors may be added to a subgraph before or after it is referenced in an op configuration.

See also

QairtGraph\_createSubgraph

- Parameters

    - **graphName** – **[in]** Unique name for the subgraph within the parent context. Must not be NULL or duplicate an existing graph name.

- 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 or duplicate graph name
- invalid parent graph handle
- memory allocation failure

- Returns

    - A new [Graph](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph) object representing the created subgraph.

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

    - Apply a configuration to this graph.

Modifies configuration options on an already-created graph. Must be called before [finalize()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1a3cac0de39645faa5f31dd1fa85ef6f0b). If the backend cannot support all provided configuration options, this call will fail.

See also

QairtGraph\_setConfig

- Parameters

    - **config** – **[in]** Configuration object specifying priority, profiling, and custom options to apply.

- 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 graph or configuration handle
- unsupported configuration option
- graph already finalized
- profile handle already in use by another graph

- inline void finalize()

    - Finalize this graph for execution without a profiling handle.

Validates all operations, checks connectivity, and prepares the graph for execution. Some backends also require finalization of graphs retrieved from a context binary before execution.

See also

QairtGraph\_finalize

- 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 graph handle
- op or kernel creation failure
- graph optimization failure
- subgraph finalization attempt
- graph has zero nodes

- inline void finalize([Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE) &profile)

    - See also

[Graph::finalize()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1a3cac0de39645faa5f31dd1fa85ef6f0b)

- inline void execute([IOTensorSet](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt5Graph11IOTensorSetE) &ioTensors)

    - 

- inline void execute(const std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &inputs, std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &outputs, std::shared\_ptr&lt;[Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE)&gt; profile = nullptr, std::shared\_ptr&lt;[Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt6SignalE)&gt; signal = nullptr)

    - Execute this finalized graph synchronously with the given input and output tensors.

Blocks until execution completes. If other executions are already enqueued, this call waits in the same queue with equal priority to asynchronous calls.

See also

QairtGraph\_execute

- Parameters

    - - **inputs** – **[in]** Input tensors. Each must carry the ID assigned during [createGraphTensor()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1aea5f2c4634303c1543b077ce44ddbcee). May be empty only if the graph has no application-writable tensors.
- **outputs** – **[out]** Output tensors to be populated by the backend. Each must carry the ID assigned during [createGraphTensor()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1aea5f2c4634303c1543b077ce44ddbcee).
- **profile** – **[in]** Optional profile object for collecting execution metrics. Must be null if continuous profiling is configured via [GraphConfiguration::setProfile()](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1GraphConfiguration_1a63bbfb38d63b75f2dffdc8069b04a372).
- **signal** – **[in]** Optional signal for aborting or timing out execution.

- 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 graph handle
- graph not finalized
- subgraph execution attempted
- invalid or null tensors
- invalid or in-use signal
- set profile failed
- graph disabled during context deserialization
- dynamic tensor shape limit exceeded
- tensor sparsity constraint violated
- execution terminated early
- execution aborted or timed out
- context freed prior to execution

- inline void execute(const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &inputs, std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &outputs)

    - See also

[Graph::execute(const std::vector&lt;Tensor&gt;&, std::vector&lt;Tensor&gt;&, std::shared\_ptr&lt;Profile&gt;, std::shared\_ptr&lt;Signal&gt;)](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#classqairt_1_1Graph_1a8e5f502ba8f97da821cd9b809ad575ae)

- inline void executeAsync(const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &inputs, std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &outputs, ApiTypeRef&lt;const [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE)&&gt; profile, ApiTypeRef&lt;const [Signal](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtSignal.html#_CPPv4N5qairt6SignalE)&&gt; signal, std::function&lt;void(void\*, [NotifyStatus](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt12NotifyStatusE))&gt; fn, void \*notifyParam)

    - 

- inline void executeAsync(const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &inputs, std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &outputs, std::function&lt;void(void\*, [NotifyStatus](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt12NotifyStatusE))&gt; fn, void \*notifyParam)

    - 

- inline void executeAsync(const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &inputs, std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &outputs, std::function&lt;void([NotifyStatus](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt12NotifyStatusE))&gt; fn)

    - 

- inline void executeAsync(const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &inputs, std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &outputs)

    -

Private Functions

- inline void customFree(handle\_type handle)

    - 

- inline Graph(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtContext\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtContext.html#_CPPv421QairtContext_Handle_t) contextHandle, const char \*name, ApiTypeRef&lt;const [GraphConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt18GraphConfigurationE)&&gt; graphConfig)

    - 

- inline Graph(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtContext\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtContext.html#_CPPv421QairtContext_Handle_t) contextHandle, const char \*name)

    - 

- inline Graph(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtGraph\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv419QairtGraph_Handle_t) parentHandle, const char \*subgraphName)

    -

Private Members

- friend Context

    - 

- bool m\_isRetreived = false

    - True if this graph was retrieved from an existing context rather than created.

Private Static Functions

- static inline void asyncCallbackTrampoline(void \*trampolineObject, [Qairt\_Status\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtCommon.html#_CPPv414Qairt_Status_t) status)

    -

Friends

- *friend class* Api

- *friend class* ::qairt::ApiType

- struct GraphRetrieveContext

    - Public Members

- [QairtContext\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtContext.html#_CPPv421QairtContext_Handle_t) m\_contextHandle

    -

- class IOTensorSet

    - Public Functions

- inline IOTensorSet(std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; inputs, std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; outputs)

    - 

- inline std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &getInputs()

    - 

- inline const std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &getInputs() const

    - 

- inline std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &getOutputs()

    - 

- inline const std::vector&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt; &getOutputs() const

    -

Private Members

- friend Graph

    -

- struct ParentGraphHandle

    - Public Members

- [QairtGraph\_Handle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv419QairtGraph_Handle_t) m\_parentHandle

    -

- class GraphConfiguration : public [qairt](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtLog.html#_CPPv45qairt)::ApiType&lt;[GraphConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt18GraphConfigurationE), [QairtGraph\_ConfigV1\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv421QairtGraph_ConfigV1_t)&gt;

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

Configuration object for graph creation and execution behavior.

Construct directly — `GraphConfiguration()` — and call setter methods to
       configure priority, profiling, and custom options before passing to
       Context::createGraph().
    Copy to clipboard

Public Functions

- GraphConfiguration() noexcept = default

    - 

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

    - 

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

    - 

- inline [GraphConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt18GraphConfigurationE) &setCustomConfig(const [GraphCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt17GraphCustomConfigE) &config)

    - Set a single backend-specific custom configuration entry on this graph configuration.

See also

QairtGraph\_Config\_setCustomConfigs

- Parameters

    - **config** – **[in]** Single custom configuration entry.

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

- Returns

    - Reference to this configuration object, enabling method chaining.

- inline void setCustomConfigs(const [GraphCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt24GraphCustomConfigurationE) &config)

    - Set multiple backend-specific custom configuration entries on this graph configuration.

See also

QairtGraph\_Config\_setCustomConfigs

- Parameters

    - **config** – **[in]** Collection of custom configuration entries.

- 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 [Priority](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt8PriorityE) getPriority() const

    - Get the scheduling priority for this graph configuration.

See also

QairtGraph\_Config\_getPriority

- 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

    - The current priority level.

- inline void setPriority([Priority](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt8PriorityE) priority)

    - Set the scheduling priority for this graph configuration.

See also

QairtGraph\_Config\_setPriority

- Parameters

    - **priority** – **[in]** Desired scheduling priority level.

- 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 [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE) &getProfile()

    - Get the profile handle bound to this graph configuration.

See also

QairtGraph\_Config\_getProfileHandle

- 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 bound [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile) object.

- inline const [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE) &getProfile() const

    - Get the profile handle bound to this graph configuration.

See also

QairtGraph\_Config\_getProfileHandle

- 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 bound [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile) object.

- inline void setProfile(const [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE) &profile)

    - Set the profile handle on this graph configuration.

See also

QairtGraph\_Config\_setProfileHandle

- Parameters

    - **profile** – **[in]** [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile) object to bind.

- 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 if the profile is already in use.

- inline [GraphProfilingState](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt19GraphProfilingStateE) getGraphProfilingState() const

    - Get the profiling state for this graph configuration.

See also

QairtGraph\_Config\_getProfilingState

- 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

    - The current profiling state.

- inline void setGraphProfilingState([GraphProfilingState](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt19GraphProfilingStateE) graphProfilingState)

    - Set the profiling state for this graph configuration.

See also

QairtGraph\_Config\_setProfilingState

- Parameters

    - **graphProfilingState** – **[in]** Desired profiling state.

- 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 uint32\_t getNumProfilingExecutions() const

    - Get the number of profiling executions configured for this graph.

See also

QairtGraph\_Config\_getNumProfilingExecutions

- 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 executions to profile.

- inline void setNumProfilingExecutions(uint32\_t numProfilingExecutions)

    - Set the number of executions to profile for this graph configuration.

See also

QairtGraph\_Config\_setNumProfilingExecutions

- Parameters

    - **numProfilingExecutions** – **[in]** Number of executions to profile.

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

Private Functions

- inline GraphConfiguration(const std::shared\_ptr&lt;ApiTable&gt; &apiTable, [QairtGraph\_ConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv425QairtGraph_ConfigHandle_t) handle)

    - 

- inline void prepareToCross() const

    - 

- inline void updateAfterCross() const

    - 

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

    -

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;[Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#_CPPv4N5qairt7ProfileE)&gt;, &interface\_type::getProfileHandle, &interface\_type::setProfileHandle&gt; m\_profile

    - [Profile](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtProfile.html#classqairt_1_1Profile) handle bound to this graph configuration for continuous profiling.

Friends

- *friend class* Api

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

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

Abstract base class for a single backend-specific graph custom configuration entry.

Public Functions

- virtual ~GraphCustomConfig() = default

    - 

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

    -

Protected Functions

- GraphCustomConfig() = default

    - 

- GraphCustomConfig(const [GraphCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt17GraphCustomConfig17GraphCustomConfigERK17GraphCustomConfig)&) = default

    - 

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

    - 

- [GraphCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt17GraphCustomConfigE) &operator=(const [GraphCustomConfig](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt17GraphCustomConfigE)&) = default

    - 

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

    -

- class GraphCustomConfiguration

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

Abstract base class for a collection of backend-specific graph custom configuration entries.

Public Functions

- virtual ~GraphCustomConfiguration() = default

    - 

- virtual std::vector&lt;[QairtGraph\_CustomConfigHandle\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv431QairtGraph_CustomConfigHandle_t)&gt; getCustomConfigs() const = 0

    -

Protected Functions

- GraphCustomConfiguration() = default

    - 

- GraphCustomConfiguration(const [GraphCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt24GraphCustomConfiguration24GraphCustomConfigurationERK24GraphCustomConfiguration)&) = default

    - 

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

    - 

- [GraphCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt24GraphCustomConfigurationE) &operator=(const [GraphCustomConfiguration](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt24GraphCustomConfigurationE)&) = default

    - 

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

    -

- struct NotifyStatus

    - Public Members

- [QairtGraph\_Error\_t](https://docs.qualcomm.com/doc/80-63442-10/topic/QairtGraph.html#_CPPv418QairtGraph_Error_t) error

    -

- class TensorSet

    - Public Functions

- TensorSet() = default

    - 

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

    - 

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

    - 

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

    - 

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

    - 

- inline std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &getInputs()

    - 

- inline const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &getInputs() const

    - 

- inline void setInputs(std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; inputs)

    - 

- inline [TensorSetMemType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt16TensorSetMemTypeE) getMemType()

    - 

- inline const [TensorSetMemType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt16TensorSetMemTypeE) getMemType() const

    - 

- inline void setMemType([TensorSetMemType](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtGraph.html#_CPPv4N5qairt16TensorSetMemTypeE) memType)

    - 

- inline std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &getOutputs()

    - 

- inline const std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; &getOutputs() const

    - 

- inline void setOutputs(std::vector&lt;std::shared\_ptr&lt;[Tensor](https://docs.qualcomm.com/doc/80-63442-10/topic/cpp-api_QairtTensor.html#_CPPv4N5qairt6TensorE)&gt;&gt; outputs)

    -

Last Published: Jun 04, 2026

[Previous Topic
QairtContext](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtContext.md) [Next Topic
QairtTensor](https://docs.qualcomm.com/bundle/publicresource/80-63442-10/topics/cpp-api_QairtTensor.md)