DEENESPTFRRUARHIKOZHNL

clase ara::shwa::TaskHandler

Diese Seite wurde vollständig KI-generiert auf Basis von SWS Safe Hardware Acceleration (R25-11) — kein offizieller AUTOSAR-Text und keine automatisch extrahierte API-Seite wie die übrigen Module. Als Interpretation gekennzeichnete Aussagen sind Schlussfolgerungen aus den Quellen.

[AP_SWS_SHWA_01201] texto aún no importado Upstream: RS_SHWA_00001

class TaskHandler final {...};

Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.

Header-Datei#include "ara/shwa/task_handler.h"
Scopenamespace ara::shwa

Guía del usuarioGENERADO POR IA

Permite la creación y el envío de tareas de cálculo individuales y paralelas a dispositivos aceleradores.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 6d7c7c77c2a9 Procedencia Preguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Permite la creación y el envío de tareas de cálculo individuales y paralelas a dispositivos aceleradores.

La clase ara::shwa::TaskHandler sirve para ejecutar tareas en hardware acelerador mediante envíos a colas [AP_SWS_SHWA_01203]. Las nuevas instancias se crean de forma segura para subprocesos mediante el método de fábrica estático Create(), que devuelve errores en el ara::core::Result [AP_SWS_SHWA_01202]. A través de SingleTask y ParallelFor es posible transmitir pasos de cálculo individuales o con paralelismo de datos al dispositivo de destino. Si bien la instanciación es segura para subprocesos, los envíos de tareas no lo son y requieren sincronización externa en caso de acceso paralelo.

Contexto

La clase ara::shwa::TaskHandler forma parte, como clase final (final), del módulo para aceleración de hardware (shwa) dentro de la AUTOSAR Adaptive Platform. Actúa como interfaz central para el envío y la ejecución de tareas de cálculo en un dispositivo de destino (Device) seleccionado. Dentro de la arquitectura de software, la clase asume el rol mediador entre el componente de software consumidor y la infraestructura de ejecución subyacente.

La interacción se produce principalmente entre dos participantes del sistema: la aplicación llamadora y el acelerador de hardware seleccionado o su cola de tareas. Las operaciones de cálculo definidas por la aplicación se reciben a través de las interfaces de ara::shwa::TaskHandler y se reenvían al dispositivo como envíos a la cola [AP_SWS_SHWA_01203]. Esto permite procesar tanto pasos de cálculo individuales como patrones de procesamiento con paralelismo de datos [AP_SWS_SHWA_01204]. Interpretación: es probable que la clase encapsule las colas específicas del dispositivo, permitiendo a los componentes de aplicación controlar los recursos del acelerador sin estar acoplados a detalles de bajo nivel del hardware. Pregunta (abierta)

Ciclo de vida

El ciclo de vida de una instancia de ara::shwa::TaskHandler se controla mediante un estricto patrón de diseño Factory. La instanciación se realiza exclusivamente a través del método de fábrica estático Create() [AP_SWS_SHWA_01202]. Dado que la clase está declarada como final, queda excluida la especialización mediante herencia. El objeto generado se devuelve encapsulado en un ara::core::Result<TaskHandler>, por lo que el éxito de la inicialización debe verificarse explícitamente [AP_SWS_SHWA_01202].

En lo referente a la concurrencia y la seguridad para subprocesos, la clase presenta características diferenciadas:

  • Instanciación: la llamada al método estático Create() es segura para subprocesos (thread-safe) [AP_SWS_SHWA_01202]. Por consiguiente, varios subprocesos pueden crear de forma concurrente nuevas instancias del manejador a través de la vía de la factoría.
  • Envío de tareas: los métodos para la transmisión de órdenes de trabajo, SingleTask [AP_SWS_SHWA_01203] y ParallelFor [AP_SWS_SHWA_01204], están especificados expresamente como no seguros para subprocesos (not thread-safe). Por tanto, no se debe acceder a una única instancia de TaskHandler de forma descoordinada y simultánea desde varios subprocesos; la sincronización es responsabilidad del llamador.
  • Seguridad frente a excepciones: todos los métodos de la interfaz están declarados como noexcept y garantizan seguridad frente a excepciones (exception safe) [AP_SWS_SHWA_01202], [AP_SWS_SHWA_01203], [AP_SWS_SHWA_01204]. En el caso de Create(), se aplican además semánticas de reversión (rollback_semantics) si la inicialización falla [AP_SWS_SHWA_01202].

La propiedad permanece en el componente usuario, que retiene la instancia y la destruye tan pronto como no se requieran más envíos a la cola.

Ruta de uso

El flujo típico se divide en las fases de creación, configuración de la orden y transmisión de tareas. En primer lugar, la aplicación solicita una nueva instancia mediante ara::shwa::TaskHandler::Create() [AP_SWS_SHWA_01202]. Tras la validación correcta del ara::core::Result, el objeto queda listo para recibir órdenes de trabajo.

A continuación, la aplicación decide el método de transmisión adecuado en función del patrón de procesamiento:

  • Para tareas de cálculo individuales se invoca SingleTask(cfg), lo que encola la función de tarea pasada como parámetro en la cola del dispositivo de destino seleccionado [AP_SWS_SHWA_01203].
  • Para patrones de procesamiento con paralelismo de datos se dispone de la plantilla de función ParallelFor(bufferSize, cfg) [AP_SWS_SHWA_01204]. En este caso, además de la configuración, se pasa el tamaño del búfer (bufferSize) para controlar la ejecución paralela en múltiples elementos de datos en el dispositivo acelerador.

Interpretación: se asume que el parámetro de plantilla T representa una función invocable, una expresión lambda o una configuración de tarea correspondiente que encapsula la lógica de cálculo que debe ejecutarse en el dispositivo. Pregunta Q-2fca8604440b44e9 (abierta)

Flujo del envío de tareas con TaskHandlerApplicationTaskHandlerDevice-QueueUse Case: InstanziierungCreate()ara::core::Result<TaskHandler>Use Case: Ejecución de la tareaaltEinzelne AufgabeSingleTask(cfg)Queue-EinreichungParallele SchleifeParallelFor(bufferSize, cfg)Queue-Einreichung (Parallel)

Diagrama de secuencia: cadena de interacción desde la instanciación hasta el envío de tareas a la cola del dispositivo. Fuentes: [AP_SWS_SHWA_01202], [AP_SWS_SHWA_01203], [AP_SWS_SHWA_01204]

Escenarios de error

El tratamiento de errores en ara::shwa::TaskHandler sigue el paradigma exento de excepciones (noexcept) de la Adaptive Platform.

Los estados de error se presentan principalmente durante la instanciación:

  • El método de fábrica Create() notifica los fallos a través del canal de error en el valor de retorno ara::core::Result [AP_SWS_SHWA_01202].
  • Como identificador de error concreto está definido ShwaErrorCode::kRuntime, el cual señala errores generales de tiempo de ejecución durante la creación del objeto [AP_SWS_SHWA_01202]. Gracias a las semánticas de reversión especificadas, se garantiza que en caso de fallo no queden estados parcialmente inicializados ni fugas de recursos [AP_SWS_SHWA_01202].

Las llamadas SingleTask [AP_SWS_SHWA_01203] y ParallelFor [AP_SWS_SHWA_01204] no devuelven ningún valor (void) y no lanzan excepciones. Por lo tanto, los llamadores deben asegurarse de que la instancia del manejador sea válida y de que los accesos desde subprocesos concurrentes se sincronicen externamente.

Este texto ha sido generado por una IA a partir de la especificación AUTOSAR R25-11.

Mapa de miembros

Vista de detalle

Selecciona una entrada en el índice.

Métodos

Create función

Erzeugt beziehungsweise liefert das in der Signatur beschriebene Objekt oder Ergebnis über den angegebenen Factory-Pfad.

static ara::core::Result< TaskHandler > Create () noexcept;
ParallelFor función

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

template <typename T> void ParallelFor (std::size_t bufferSize, T cfg) noexcept;
SingleTask función

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

template <typename T> void SingleTask (T cfg) noexcept;

Detalles

función Create [AP_SWS_SHWA_01202] Upstream: RS_SHWA_00001, RS_SHWA_00007

static ara::core::Result< TaskHandler > Create () noexcept;

Erzeugt beziehungsweise liefert das in der Signatur beschriebene Objekt oder Ergebnis über den angegebenen Factory-Pfad.

Scopeclass ara::shwa::TaskHandler
Thread Safetythread-safe rollback_semantics
Exception Safetyexception safe
ErrorsShwaErrorCode::k Runtime General runtime error

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01202
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01202@rel:R25-11#1e1bde80
Content hash
1e1bde80
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01202
Status: valid/unmigrated Version: rel:R25-11#a001527a Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01202@rel:R25-11#a001527a
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

función ParallelFor [AP_SWS_SHWA_01204] Upstream: RS_SHWA_00001

template <typename T> void ParallelFor (std::size_t bufferSize, T cfg) noexcept;

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

Scopeclass ara::shwa::TaskHandler
Thread Safetynot thread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01204
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01204@rel:R25-11#28302f47
Content hash
28302f47
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01204
Status: valid/unmigrated Version: rel:R25-11#1ff0ddef Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01204@rel:R25-11#1ff0ddef
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

función SingleTask [AP_SWS_SHWA_01203] Upstream: RS_SHWA_00001

template <typename T> void SingleTask (T cfg) noexcept;

Führt die übergebene Task-Funktion innerhalb einer Queue-Einreichung auf dem ausgewählten Device aus.

Scopeclass ara::shwa::TaskHandler
Thread Safetynot thread-safe
Exception Safetyexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/AP_SWS_SHWA_01203
Status
valid/unmigrated
Version
AUTOSAR/AP/record/AP_SWS_SHWA_01203@rel:R25-11#a5a9223f
Content hash
a5a9223f
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_SafeHardwareAcceleration.pdf#nameddest=AP_SWS_SHWA_01203
Status: valid/unmigrated Version: rel:R25-11#2c1013ce Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/AP_SWS_SHWA_01203@rel:R25-11#2c1013ce
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill