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.
Permet l'accès typé et contrôlé en lecture et en écriture aux zones mémoire d'un tampon.
GÉNÉRÉ PAR IAnon vérifiéModèle : gemini-3.8-flash-medium · Effort : medium · Température : non réglable · Prompt : d5d168d169f4ProvenanceQuestions ouvertes (2)
traduit du guide allemandgemini-3.8-flash-low · 2026-10-13 · Original allemand
Permet l'accès typé et contrôlé en lecture et en écriture aux zones mémoire d'un tampon.
La classe de modèle permet l'accès typé et contrôlé à la mémoire allouée d'un tampon de données sous-jacent. L'instanciation s'effectue exclusivement via des méthodes de fabrique statiques, qui renvoient l'instance sous la forme d'un pointeur unique ([AP_SWS_SHWA_00007]). Au moment de l'exécution, les données peuvent être traitées via des opérations de lecture et d'écriture sûres du point de vue des types ou via des opérateurs d'indexation ([AP_SWS_SHWA_00011]). Toutes les opérations de copie et de déplacement sont empêchées, tandis que les opérations de données individuelles sont soumises à des exigences spécifiques de sécurité vis-à-vis des threads et de gestion des erreurs.
Contexte
La classe de modèle ara::shwa::Accessor constitue l'interface d'accès centrale pour l'accès typé à la mémoire sur les tampons de mémoire partagée dans AUTOSAR Adaptive Platform. Elle encapsule la logique d'adressage et d'accès à un ara::shwa::Buffer sous-jacent et le paramètre statiquement via le type de données (DataT), la dimensionnalité (Dimensions), le mode d'accès (AccessModeType), le dispositif cible (AccessTargetType) ainsi que l'allocateur de mémoire utilisé (AllocatorT). Dans des scénarios avancés, la classe intègre un TaskHandler qui contrôle vraisemblablement des tâches de traitement dans l'environnement du tampon. Question Q-552022fbf949a1f0 (ouverte)
Au sein du module, la classe agit en interaction avec trois partenaires d'interaction centraux :
Application / appelant : demande des instances via l'interface de fabrique et exécute des opérations de lecture ou d'écriture via des méthodes ou des opérateurs.
ara::shwa::Buffer : fournit la zone de mémoire allouée et est transmis comme référence à l'Accessor lors de sa création ([AP_SWS_SHWA_00007]).
TaskHandler : est enregistré au besoin pendant la création afin de coordonner les tâches lors du traitement du tampon ([AP_SWS_SHWA_00008]).
Le cycle de vie de ara::shwa::Accessor est soumis à des restrictions sémantiques strictes qui empêchent toute duplication ou déplacement incontrôlé d'instances d'accès. Le constructeur par défaut est explicitement supprimé ([AP_SWS_SHWA_00002]). De même, tant le constructeur de copie ([AP_SWS_SHWA_00003]) que le constructeur de déplacement ([AP_SWS_SHWA_00005]) ainsi que tous les opérateurs d'assignation par copie et par déplacement sont déclarés comme supprimés ([AP_SWS_SHWA_00004], [AP_SWS_SHWA_00006]). Une instanciation directe sur la pile ou une sémantique de valeur est ainsi exclue.
La création de nouvelles instances s'effectue exclusivement via la méthode de fabrique statique Create ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Elle renvoie un ara::core::Result<std::unique_ptr<Accessor>>, ce qui transfère la propriété de manière exclusive à l'appelant. L'objet est automatiquement détruit dès que le std::unique_ptr propriétaire quitte sa portée. Les méthodes de création sont spécifiées comme étant sûres vis-à-vis des threads (thread-safe) et des exceptions (exception safe) ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
En ce qui concerne la concurrence en fonctionnement continu, les méthodes d'accès explicites Get ([AP_SWS_SHWA_00012]) et Set ([AP_SWS_SHWA_00011]) sont classées comme sûres vis-à-vis des threads. En revanche, les accès par index via operator[] ([AP_SWS_SHWA_00009], [AP_SWS_SHWA_00010]) ainsi que les requêtes de propriétés via HasProperty ([AP_SWS_SHWA_00015]) et GetProperty ([AP_SWS_SHWA_00016]) ne sont pas sûrs vis-à-vis des threads et nécessitent une synchronisation côté application.
Parcours d'utilisation
Un déroulement d'utilisation régulier se divise en la création de l'objet, la vérification facultative des propriétés et les opérations subséquentes de lecture ou d'écriture sur le tampon :
Instanciation via la fabrique : l'application appelle Accessor::Create et transmet la référence à un ara::shwa::Buffer ainsi que, de manière facultative, des propriétés de configuration et un TaskHandler ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]). Après vérification du ara::core::Result, l'application prend en charge le std::unique_ptr<Accessor>.
Évaluer les propriétés : via la méthode de modèle HasProperty<PropertyT>(), il est possible de vérifier si une caractéristique spécifique est présente ([AP_SWS_SHWA_00015]). Les caractéristiques présentes sont ensuite lues avec GetProperty<PropertyT>() ([AP_SWS_SHWA_00016]).
Exécuter l'accès aux données : pour l'échange effectif de données, deux voies d'interface sont disponibles :
Accès basé sur des méthodes : les écritures s'effectuent via Set(index, value) ([AP_SWS_SHWA_00011]), les lectures via Get(index) ([AP_SWS_SHWA_00012]), chacune étant adressée via un identifiant dimensionnel (Id<Dimensions>).
Accès basé sur des opérateurs : l'opérateur d'index operator[] permet l'adressage direct via Id<Dimensions> ([AP_SWS_SHWA_00009]) ou un décalage linéaire de type std::size_t ([AP_SWS_SHWA_00010]). Le type de retour ReferenceT se résout en const DataT& lors d'un accès en lecture et en DataT& lors d'un accès en écriture ([AP_SWS_SHWA_00014]).
Les opérations défectueuses sont représentées via le ara::core::Result au moyen de codes d'erreur issus de ShwaErrorCode :
ShwaErrorCode::kAccessorFailure : survient pendant Create si les conditions de construction ou les paramètres sont invalides ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]).
ShwaErrorCode::kIntegrityCorrupted : signale une intégrité de mémoire compromise du tampon. Cela peut survenir lors de l'instanciation ([AP_SWS_SHWA_00007], [AP_SWS_SHWA_00008]) ainsi que lors de l'écriture via Set ([AP_SWS_SHWA_00011]).
ShwaErrorCode::kInvalidIndex : est signalé lors de Get ([AP_SWS_SHWA_00012]) et Set ([AP_SWS_SHWA_00011]) si aucune valeur initiale valide n'est présente ou si l'index est hors limites.
ShwaErrorCode::kInvalidAccessMode : survient lors de Set si la combinaison des modes d'accès est invalide ([AP_SWS_SHWA_00011]) ; cela devrait être le cas lorsqu'un appel d'écriture est effectué sur une classe instanciée pour AccessMode::kRead. Question Q-170e82f3dec16e75 (ouverte)
ShwaErrorCode::kResourceBusy : indique lors de Get ([AP_SWS_SHWA_00012]) et Set ([AP_SWS_SHWA_00011]) que la ressource est actuellement occupée. Une sémantique de retour arrière (rollback) est garantie pour cette erreur, ce qui préserve l'état antérieur.
ShwaErrorCode::kFeatureNotSupported : est renvoyé lorsqu'une propriété demandée via GetProperty n'est pas prise en charge ([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 allemand