template <typename T> class SharedHandle final {...};
Handle to a File Storage or Key-Value Storage. A SharedHandle is returned by the functions OpenFileStorage() and OpenKeyValueStorage() and can be passed between threads as needed. It provides the abstraction that is necessary to allow thread-safe implementation of OpenFile Storage() and OpenKeyValueStorage().
Maakt thread-safe toegang tot bestands- en sleutel-waarde-opslagen mogelijk over threadgrenzen heen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 7420a4e54761HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Maakt thread-safe toegang tot bestands- en sleutel-waarde-opslagen mogelijk over threadgrenzen heen.
De templateklasse ara::per::SharedHandle dient als smart-pointer-abstractie voor bestands- en sleutel-waarde-opslagen om thread-safe toegang over threadgrenzen heen mogelijk te maken. Na ontvangst via factory-functies moet de geldigheidstoestand van de handle via operator bool()[SWS_PER_00398] worden gecontroleerd, omdat het aanroepen van andere operators op een lege of door move-operaties geïnvalideerde handle tot ongedefinieerd gedrag leidt. Terwijl het derefereren naar het ingekapselde object thread-safe is, vereisen toewijzingen en de vernietiging van de handle [SWS_PER_00568] op dezelfde instantie externe synchronisatie.
Context
De templateklasse ara::per::SharedHandle vormt in de module per (Persistency) van het AUTOSAR Adaptive Platform een smart-pointer-abstractie voor persistente opslagbronnen. Deze dient als gestandaardiseerd retourtype van de factory-functies OpenFileStorage() en OpenKeyValueStorage(). De hoofdverantwoordelijkheid van de klasse is het coördineren van de toegang tot bestands- en sleutel-waarde-opslagen over threadgrenzen heen en het bieden van de vereiste inkapseling om een thread-safe implementatie van de routines voor het openen van en toegang krijgen tot opslag mogelijk te maken. Interactiepartners zijn applicatie-threads, het persistentiebeheer en de telkens ingekapselde opslagbron T.
Levenscyclus
Een SharedHandle ontstaat typisch bij het openen van een opslaginstantie via de factory-interfaces van per. Via de copy constructor [SWS_PER_00369] en de copy assignment operator [SWS_PER_00370] kan de handle worden gedupliceerd, waardoor meerdere handle-instanties gedeelde toegang tot hetzelfde doelobject krijgen. Wordt een handle overgedragen via move constructor [SWS_PER_00367] of move assignment [SWS_PER_00368], dan gaat de bron-handle over naar een geïnvalideerde toestand en mag deze niet meer worden gebruikt voor opslagtoegang.
De actuele status van de handle wordt bepaald door de expliciete conversie-operator operator bool()[SWS_PER_00398]: deze levert true op als een geldige opslaginstantie wordt gerefereerd, en false als de handle leeg is. De vrijgave van de handle-resources vindt plaats via de destructor ~SharedHandle()[SWS_PER_00568]. Interpretatie: de onderliggende opslagbron wordt vermoedelijk vrijgegeven zodra de laatste refererende SharedHandle wordt vernietigd. Vraag Q-00a1798cf43e0ee6 (open)
Kritieke fouttoestanden treden primair op bij niet-toegestane bewerkingen op lege of geïnvalideerde handles. Volgens [SWS_PER_00398] leidt het aanroepen van willekeurige operators behalve operator bool() op een lege handle direct tot ongedefinieerd gedrag (Undefined Behavior). Dit betreft met name bron-handles na een move-constructie [SWS_PER_00367] of een move-toewijzing [SWS_PER_00368], aangezien deze worden geïnvalideerd en niet verder mogen worden gebruikt.
Deze handleiding is gebaseerd op de AUTOSAR-specificatie voor de module per (Adaptive Platform, Release R25-11) en is samengesteld door een AI-curatie-assistent.
Move constructor for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Move assignment operator for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Handle state. True if the handle represents a valid object of the templated class, False if the handle is empty (e.g. after a move operation). Using other operators than bool() of an empty handle will result in undefined behavior.
Move constructor for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Move assignment operator for SharedHandle. The source handle object is invalidated and cannot be used anymore. The operator bool() shall be used to check the state of a handle object before using any other operators of the handle object.
Handle state. True if the handle represents a valid object of the templated class, False if the handle is empty (e.g. after a move operation). Using other operators than bool() of an empty handle will result in undefined behavior.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel