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.
Permite el acceso tipificado y controlado de lectura y escritura a áreas de memoria de un búfer.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: d5d168d169f4ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite el acceso tipificado y controlado de lectura y escritura a áreas de memoria de un búfer.
La clase de plantilla permite el acceso tipificado y controlado a la memoria asignada de un búfer de datos subyacente. La instanciación se lleva a cabo exclusivamente a través de métodos de fábrica estáticos que devuelven la instancia como puntero único ([AP_SWS_SHWA_00007]). En tiempo de ejecución, los datos pueden procesarse a través de operaciones seguras de lectura y escritura o mediante operadores de índice ([AP_SWS_SHWA_00011]). Todas las operaciones de copia y de movimiento están inhibidas, mientras que las operaciones de datos individuales están sujetas a requisitos específicos de seguridad para hilos y tratamiento de errores.
Contexto
La clase de plantilla ara::shwa::Accessor constituye la interfaz de acceso central para el acceso tipificado a memoria en búferes de memoria compartida (Shared Memory) en AUTOSAR Adaptive Platform. Encapsula la lógica de direccionamiento y acceso a un ara::shwa::Buffer subyacente y lo parametriza estáticamente a través del tipo de datos (DataT), la dimensionalidad (Dimensions), el modo de acceso (AccessModeType), el dispositivo de destino (AccessTargetType), así como el asignador de memoria utilizado (AllocatorT). En escenarios avanzados, la clase integra un TaskHandler que presumiblemente controla tareas de procesamiento en el entorno del búfer. Pregunta Q-552022fbf949a1f0 (abierta)
Dentro del módulo, la clase opera en interacción con tres interlocutores centrales:
Aplicación / Invocador: solicita instancias a través de la interfaz de fábrica y lleva a cabo operaciones de lectura o escritura a través de métodos u operadores.
ara::shwa::Buffer: proporciona el área de memoria asignada y se pasa como referencia al Accessor durante su creación ([AP_SWS_SHWA_00007]).
TaskHandler: se registra según sea necesario durante la creación para coordinar tareas en el tratamiento de búferes ([AP_SWS_SHWA_00008]).
El ciclo de vida de ara::shwa::Accessor está sujeto a estrictas restricciones semánticas que evitan la duplicación o el movimiento incontrolados de instancias de acceso. El constructor predeterminado está explícitamente eliminado ([AP_SWS_SHWA_00002]). Del mismo modo, tanto el constructor de copia ([AP_SWS_SHWA_00003]) como el constructor de movimiento ([AP_SWS_SHWA_00005]), así como todos los operadores de asignación por copia y por movimiento, están declarados como eliminados ([AP_SWS_SHWA_00004], [AP_SWS_SHWA_00006]). Queda así excluida una instanciación directa en la pila o una semántica por valor.
La creación de nuevas instancias se realiza exclusivamente a través del método de fábrica estático Create ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Este devuelve un ara::core::Result<std::unique_ptr<Accessor>>, con lo cual la propiedad se transfiere de forma exclusiva al invocador. El objeto se destruye automáticamente en cuanto el std::unique_ptr propietario sale de su ámbito de validez. Los métodos de creación están especificados como seguros para hilos (thread-safe) y seguros ante excepciones (exception safe) ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
En cuanto a la concurrencia durante el funcionamiento continuo, los métodos de acceso explícitos Get ([AP_SWS_SHWA_00012]) y Set ([AP_SWS_SHWA_00011]) están clasificados como seguros para hilos (thread-safe). Por el contrario, los accesos indexados mediante operator[] ([AP_SWS_SHWA_00009], [AP_SWS_SHWA_00010]), así como las consultas de propiedades a través de HasProperty ([AP_SWS_SHWA_00015]) y GetProperty ([AP_SWS_SHWA_00016]), no son seguros para hilos y requieren sincronización por parte de la aplicación.
Ruta de uso
Un flujo de uso regular se divide en la creación del objeto, la comprobación opcional de propiedades y las posteriores operaciones de lectura o escritura en el búfer:
Instanciación mediante Factory: la aplicación invoca Accessor::Create y transfiere la referencia a un ara::shwa::Buffer, así como opcionalmente propiedades de configuración y un TaskHandler ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Tras comprobar el ara::core::Result, la aplicación asume el std::unique_ptr<Accessor>.
Evaluar propiedades: a través del método de plantilla HasProperty<PropertyT>() se puede consultar si una característica específica está presente ([AP_SWS_SHWA_00015]). Las características presentes se leen a continuación con GetProperty<PropertyT>() ([AP_SWS_SHWA_00016]).
Ejecutar acceso a datos: para el intercambio de datos propiamente dicho existen dos rutas de interfaz disponibles:
Acceso basado en métodos: las operaciones de escritura se realizan mediante Set(index, value) ([AP_SWS_SHWA_00011]) y las de lectura mediante Get(index) ([AP_SWS_SHWA_00012]), direccionadas en cada caso a través de un identificador dimensional (Id<Dimensions>).
Acceso basado en operadores: el operador de indexación operator[] permite el direccionamiento directo mediante Id<Dimensions> ([AP_SWS_SHWA_00009]) o un desplazamiento lineal de tipo std::size_t ([AP_SWS_SHWA_00010]). El tipo de retorno ReferenceT se resuelve en const DataT& para el acceso de lectura y en DataT& para el acceso de escritura ([AP_SWS_SHWA_00014]).
Las operaciones erróneas se representan a través del ara::core::Result mediante códigos de error de ShwaErrorCode:
ShwaErrorCode::kAccessorFailure: se produce durante Create si las condiciones de construcción o los parámetros no son válidos ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
ShwaErrorCode::kIntegrityCorrupted: señala una integridad de memoria vulnerada del búfer. Esto puede ocurrir durante la instanciación ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]) así como al escribir mediante Set ([AP_SWS_SHWA_00011]).
ShwaErrorCode::kInvalidIndex: se notifica en Get ([AP_SWS_SHWA_00012]) y Set ([AP_SWS_SHWA_00011]) si no hay disponible un valor inicial válido o si el índice se encuentra fuera de los límites.
ShwaErrorCode::kInvalidAccessMode: se produce en Set si la combinación de los modos de acceso no es válida ([AP_SWS_SHWA_00011]); es de suponer que este sea el caso si se realiza una llamada de escritura en una clase instanciada para AccessMode::kRead. Pregunta Q-170e82f3dec16e75 (abierta)
ShwaErrorCode::kResourceBusy: indica en Get ([AP_SWS_SHWA_00012]) y Set ([AP_SWS_SHWA_00011]) que el recurso está ocupado actualmente. Para este error se garantiza una semántica de reversión (rollback), por lo que se conserva el estado anterior.
ShwaErrorCode::kFeatureNotSupported: se devuelve si una propiedad solicitada a través de GetProperty no es compatible ([AP_SWS_SHWA_00016]).
ara::core::Result< DataT > Get (Id< Dimensions > index);
Liest die durch die Signatur bezeichnete Information oder Eigenschaft aus dem Objekt.
Scope
class ara::shwa::Accessor
Thread Safety
thread-safe rollback_semantics ShwaErrorCode::kInvalid Index The operation could not be performed because no initial value is available rollback_semantics
Exception Safety
not exception safe
Errors
ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy.
Request a governed re-review of this record. The record is not changed immediately.
ara::core::Result< void > Set (Id< Dimensions > index, DataT value);
Schreibt den übergebenen Wert an die durch die Signatur bestimmte Stelle.
Scope
class ara::shwa::Accessor
Thread Safety
thread-safe
Exception Safety
not exception safe
Errors
ShwaErrorCode::kInvalid Index no_rollback_semantics The operation could not be performed because no initial value is available no_rollback_semantics ShwaErrorCode::kInvalid AccessMode Opening a file failed because the requested combination of Open Modes is invalid no_rollback_semantics ShwaErrorCode::k IntegrityCorrupted The structural integrity of the memory allocated by Buffer could not be established rollback_semantics ShwaErrorCode::k ResourceBusy The operation could not be performed because the resource is currently busy.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán