FileAccessor contains a common basis for ReadAccessor and WriteAccessor. It provides methods for checking and setting the current position in the file (GetPosition, Set Position, MovePosition, IsEof) and for checking the current size of the file (GetSize).
Dient als gemeenschappelijke basisklasse voor het opvragen van bestandsgrootte en positienavigatie voor gespecialiseerde bestandstoegangen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e1768b56d42cHerkomstOpen vragen (2)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient als gemeenschappelijke basisklasse voor het opvragen van bestandsgrootte en positienavigatie voor gespecialiseerde bestandstoegangen.
De klasse ara::per::FileAccessor dient in de AUTOSAR-persistencemodule als gemeenschappelijke basisklasse voor positienavigatie en groottecontrole van geordende bestandstoegangen ([SWS_PER_00424]). Deze verhindert directe instantiatie en kopieerbewerkingen door verwijderde constructors ([SWS_PER_00589]). Bij ongeldige positieopgaven treedt een rollback-semantiek in werking die de huidige pointerpositie beschermt. Alle bewerkingen zijn uitzonderingsveilig, maar vereisen bij gelijktijdig gebruik externe synchronisatie.
Context
De klasse ara::per::FileAccessor dient in de persistence-module (ara::per) van het AUTOSAR Adaptive Platform als gemeenschappelijke abstracte basisklasse voor bestandstoegangsobjecten zoals ReadAccessor en WriteAccessor. Haar centrale verantwoordelijkheid is de uniforme interface voor bestandsgerelateerd positiebeheer en groottecontrole. De klasse fungeert als controle-instantie voor de lees- en schrijfcursor binnen een geopend bestand, maar bevat zelf geen methoden voor de feitelijke gegevensoverdracht (zoals het lezen of schrijven van bytes). De navigatie vindt ofwel absoluut vanaf het begin van het bestand plaats of relatief ten opzichte van gedefinieerde referentiepunten.
Levenscyclus
De klasse ara::per::FileAccessor kan niet direct worden geïnstantieerd of vrij worden gekopieerd. De standaardconstructor is verwijderd ([SWS_PER_00589]), net als de copy-constructor ([SWS_PER_00592]) en de copy-assignment-operator ([SWS_PER_00593]). Ook move-semantieken zijn expliciet verhinderd: zowel de move-constructor ([SWS_PER_00590]) als de move-assignment-operator ([SWS_PER_00591]) zijn verwijderd. Hieruit volgt de interpretatie dat instanties uitsluitend in de context van concrete subklassen worden aangemaakt en beheerd.
Voor een veilige vrijgave zorgt de virtuele destructor ~FileAccessor() ([SWS_PER_00594]), die een polymorfe vernietiging via basisklassepointers mogelijk maakt. Wat betreft concurrency zijn alle memberfuncties als niet thread-safe gespecificeerd ([SWS_PER_00162], [SWS_PER_00424], [SWS_PER_00107], [SWS_PER_00163], [SWS_PER_00164]). Concurrerende toegangen van verschillende threads tot dezelfde instantie moeten derhalve door de applicatie worden gesynchroniseerd.
Gebruikspad
Het typische gebruik van FileAccessor omvat het opvragen van de bestandsgrootte, het bepalen van de huidige positie en gerichte positieverschuivingen ter voorbereiding van lees- of schrijftoegangen:
Grootte opvragen: Via GetSize() wordt de actuele bestandsgrootte in bytes bepaald ([SWS_PER_00424]).
Positie opvragen: Met GetPosition() vraagt de applicatie de huidige byte-offset vanaf het begin van het bestand op, die ook exact aan het einde van het bestand kan liggen ([SWS_PER_00162]).
Absolute positionering:SetPosition() zet de cursor op een absolute offset vanaf het begin van het bestand ([SWS_PER_00163]).
Relatieve verschuiving:MovePosition() verschuift de cursor uitgaande van Origin::kBeginning, Origin::kCurrent of Origin::kEnd met een offset met voorteken ([SWS_PER_00164]).
Controle op bestandseinde: De methode IsEof() geeft aan of de huidige positie het einde van het bestand heeft bereikt ([SWS_PER_00107]).
Alle bewerkingen van FileAccessor zijn uitzonderingsveilig gedeclareerd (noexcept). Potentiële fouttoestanden bij navigatie-aanroepen worden via ara::core::Result geretourneerd:
Als een applicatie via SetPosition() een positie voorbij het einde van het bestand probeert aan te sturen, mislukt de aanroep met de foutcode PerErrc::kInvalidPosition ([SWS_PER_00163]). Ditzelfde geldt voor MovePosition(), indien de berekende doelpositie negatief zou uitvallen of achter het einde van het bestand ligt ([SWS_PER_00164]). Voor beide methoden is een strikte rollback-semantiek bindend voorgeschreven: treedt er een fout op, dan blijft de voorheen geldige positie van het bestand ongewijzigd behouden ([SWS_PER_00163], [SWS_PER_00164]).
De opvragende methoden GetSize() ([SWS_PER_00424]), GetPosition() ([SWS_PER_00162]) en IsEof() ([SWS_PER_00107]) retourneren direct basisgegevenstypen en genereren geen specifieke foutcodes.
Deze tekst is door een AI opgesteld op basis van de AUTOSAR-specificatie R25-11. Deze vult de normatieve documentatie aan met een totaalbeeld van de navigatie-abstractie.
Moves the current position in the file relative to the Origin. In case of an error, the current position is not changed.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 436bd0736ae4Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone methode MovePosition van de klasse ara::per::FileAccessor verplaatst de huidige bestandspositie relatief ten opzichte van een gedefinieerd referentiepunt [SWS_PER_00164]. De functie is gedeclareerd als noexcept[SWS_PER_00164]. Als parameters accepteert deze het uitgangspunt origin van het type Origin en de signed byte-offset offset[SWS_PER_00164]. Bij succesvolle uitvoering levert de methode een ara::core::Result met de resulterende absolute bytepositie vanaf het begin van het bestand op [SWS_PER_00164].
Samenspel en parameterwaarden
Het referentiepunt origin wordt vastgelegd door de enumeratie Origin[SWS_PER_00146]:
Origin::kBeginning: Verschuiving vanaf het begin van het bestand; offset kan hierbij positief zijn [SWS_PER_00164], [SWS_PER_00146].
Origin::kCurrent: Verschuiving vanaf de huidige bestandspositie; offset mag positief of negatief zijn, waarbij een waarde van nul de positie niet wijzigt [SWS_PER_00164], [SWS_PER_00146].
Origin::kEnd: Verschuiving relatief ten opzichte van het bestandseinde; offset mag negatief zijn, terwijl een offset van nul de positie exact op het bestandseinde zet [SWS_PER_00164], [SWS_PER_00146].
Foutafhandeling
Bij een fout wordt de eerdere bestandspositie door middel van rollback-semantiek niet gewijzigd [SWS_PER_00164]. Als het berekende doelpunt resulteert in een waarde kleiner dan nul of voorbij het bestandseinde ligt, wordt de foutcode PerErrc::kInvalidPosition geretourneerd [SWS_PER_00164]. Bovendien kan het resultaat fabrikantspecifieke fouten bevatten [SWS_PER_00164].
Gelijktijdigheid en beperkingen
De methode is gespecificeerd als exception safe[SWS_PER_00164]. Aangezien de implementatie is geclassificeerd als not thread-safe, moeten parallelle toegangen tot dezelfde instantie van FileAccessor aan de aanroeperszijde worden gesynchroniseerd [SWS_PER_00164].
Deze tekst is gegenereerd door een AI-systeem en gecureerd door autodocs.
Offset in bytes relative to ’origin’. Can be positive in case of k Beginning and kCurrent and negative in case of kCurrent and k End. In case of kCurrent, an offset of zero will not change the current position. In case of kEnd, an offset of zero will set the position to the end of the file.
A Result containing the new position in bytes from the beginning of the file. In case of an error, it contains any of the errors defined below, or a vendor specific error.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel