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_01001] tekst nog niet geïmporteerdUpstream: RS_SHWA_00017
template <int Dimensions = 1> class Range final {...};
Die Spezifikation definiert diesen Klassentyp mit der gezeigten Schnittstelle.
Kapselt tot driedimensionale bereikomvangen in als onveranderlijk waardetype via gecontroleerde factory-creatie.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9801add965b6HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Kapselt tot driedimensionale bereikomvangen in als onveranderlijk waardetype via gecontroleerde factory-creatie.
De klasse kapselt meerdimensionale bereikafmetingen in en sluit parameterloze instantiëring volledig uit [AP_SWS_SHWA_01002]. Objecten ontstaan gecontroleerd via statische factory-methoden, die in geval van een fout ShwaErrorCode::kRuntime leveren en bij succes uitzonderingsveilige waardeobjecten met kopieer- en move-semantiek beschikbaar stellen [AP_SWS_SHWA_01007]. Het uitlezen van afzonderlijke dimensies is niet thread-safe en vereist externe synchronisatie [AP_SWS_SHWA_01010].
Context
De templateklasse ara::shwa::Range representeert binnen de Adaptive Platform-module shwa een meerdimensionale bereik- of grootteopgave (standaard geparametriseerd via Dimensions = 1). In hardwarenahe of geheugendelende architecturen dient een bereikobject doorgaans als gestructureerde beschrijving van geometrische afmetingen of bufferdimensies over maximaal drie assen. Interactiepartners zijn vooral toepassingscomponenten en driverdiensten die geheugenbereiken moeten alloceren, partitioneren of adresseren. De klasse kapselt de discrete afmetingen van de dimensies in en beschermt deze tegen foutieve directe constructie, doordat onvolledig of ongeldig geïnitialiseerde objecten door interfacebeperkingen worden voorkomen.
Levenscyclus
De levenscyclus van een instantie van ara::shwa::Range wordt bepaald door strikte constructievoorschriften. De parameterloze standaardconstructor is expliciet verwijderd [AP_SWS_SHWA_01002]. Directe creatie zonder opgave van de dimensies is daarmee uitgesloten. In plaats daarvan vindt het aanmaken uitsluitend plaats via statische factory-methoden Create, die overladen zijn voor één-, twee- of driedimensionale varianten: voor één dimensie met dim0[AP_SWS_SHWA_01007], voor twee dimensies met dim0 en dim1[AP_SWS_SHWA_01008] en voor drie dimensies met dim0, dim1 en dim2[AP_SWS_SHWA_01009]. Elk van deze factory-functies levert een ara::core::Result<Range> op.
Na succesvolle creatie gedraagt de klasse zich als volwaardig waardetype (Value Type). Zij stelt zowel de kopieerconstructor [AP_SWS_SHWA_01003] als de toekenningsoperator door kopiëren [AP_SWS_SHWA_01004] beschikbaar als gestandaardiseerde, uitzonderingsveilige operaties (noexcept = default). Aanvullend zijn een move-constructor [AP_SWS_SHWA_01005] en een move-toekenningsoperator [AP_SWS_SHWA_01006] met dezelfde uitzonderingsveiligheid beschikbaar. Instanties bezitten zodoende duidelijke waardesemantiek en kunnen probleemloos worden overgedragen of in containers worden bewaard. Wat betreft gelijktijdigheid zijn de statische factory-methoden ontworpen als thread-safe, terwijl de lezende inspectormethoden GetDimension0[AP_SWS_SHWA_01010], GetDimension1[AP_SWS_SHWA_01011] en GetDimension2[AP_SWS_SHWA_01012] door de specificatie als niet thread-safe worden geclassificeerd.
Gebruikspad
Een typisch gebruikstraject omvat het aanmaken van een bereikinstantie via de statische interface, de validatie van het resultaat en het aansluitend uitlezen van de dimensies voor configuratie- of allocatiestappen. Het volgende sequentiediagram illustreert dit verloop.
In de eerste stap roept de toepassing een van de factory-overloads aan, bijvoorbeeld Create(dim0)[AP_SWS_SHWA_01007] voor een eendimensionaal bereik of Create(dim0, dim1)[AP_SWS_SHWA_01008] respectievelijk Create(dim0, dim1, dim2)[AP_SWS_SHWA_01009] voor meerdimensionale configuraties. De aanroepende laag controleert vervolgens het geretourneerde ara::core::Result op succes. Als er een geldige waarde voorligt, wordt het Range-object gederefereerd of verplaatst. Vervolgens kunnen nageschakelde functies de aanwezige asgroottes via GetDimension0[AP_SWS_SHWA_01010] en naar behoefte via GetDimension1[AP_SWS_SHWA_01011] en GetDimension2[AP_SWS_SHWA_01012] opvragen en gebruiken voor bufferoperaties.
Foutscenario's
Bij het aanmaken door middel van Create kunnen foutcondities optreden die het mislukken van de initialisatie tot gevolg hebben. In dit geval levert de factory geen geïnitialiseerd object, maar een foutresultaat van het type ShwaErrorCode::kRuntime („General runtime error”) [AP_SWS_SHWA_01007], [AP_SWS_SHWA_01008], [AP_SWS_SHWA_01009]. Voor alle factory-varianten garandeert de specificatie rollbacksemantiek en uitzonderingsveiligheid (noexcept), zodat bij een fout geen deeltoestanden achterblijven of inconsistenties worden veroorzaakt.
Voor de inspectormethoden GetDimension0[AP_SWS_SHWA_01010], GetDimension1[AP_SWS_SHWA_01011] en GetDimension2[AP_SWS_SHWA_01012] zijn geen foutterugkeercodes voorzien, maar de specificatie merkt deze wel aan als niet uitzonderingsveilig (not exception safe) en niet thread-safe (not thread-safe). De aanroeper draagt daarom de preconditie om de toegang over threads heen te beveiligen. Bovendien is de aanroep van een dimensie-opvraag die verder gaat dan het aantal dimensies waarmee met de templateparameter Dimensions is geïnstantieerd (bijvoorbeeld GetDimension2 bij een eendimensionale configuratie), vermoedelijk ontoelaatbaar en leidt dit tot fouten. Vraag Q-794519baf2ea8a5e (open)
Deze handleiding is uitsluitend gebaseerd op de interfacespecificatie van ara::shwa::Range uit AUTOSAR Adaptive R25-11.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel