class WriteAccessor final : public virtual FileAccessor {...};
WriteAccessor is used to write file data. It provides the WriteBinary and WriteText methods featuring a Result for controlled, unformatted writing, and the operator<< method for simple formatted writing. It also provides SyncToFile() to flush the buffer of the operating system to the physical storage.
Dient voor het gebufferd schrijven van binaire en tekstbestanden en de synchronisatie daarvan naar het fysieke geheugen.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: fd57dd10b948HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Dient voor het gebufferd schrijven van binaire en tekstbestanden en de synchronisatie daarvan naar het fysieke geheugen.
De klasse ara::per::WriteAccessor maakt het schrijven van binaire of tekstuele bestandsinhoud in de persistoriemodule mogelijk en stelt methoden voor ongeformatteerde schrijftoegangen evenals een geformatteerde stream-operator ter beschikking [SWS_PER_00423]. Omdat schrijfacties eerst in het besturingssysteem kunnen worden gebufferd, dwingt de aanroep van SyncToFile() het permanent flashen naar het fysieke geheugen af [SWS_PER_00122]. Alle methoden zijn exception-safe, maar niet thread-safe, waardoor gelijktijdige toegangen door de applicatie moeten worden beschermd.
Context
ara::per::WriteAccessor is een finale klasse van de persistoriemodule (per) van het AUTOSAR Adaptive Platform en leidt virtueel af van FileAccessor. De klasse stelt schrijfbewerkingen voor bestandsinhoud ter beschikking. Zij biedt methoden voor ongeformatteerd, gecontroleerd schrijven met foutafhandeling via ara::core::Result evenals een overbeladen stream-operator voor geformatteerd schrijven. Als interactiepartners fungeren de aanroepende applicatie, de interne bestandsbuffer van het besturingssysteem en het fysieke opslagmedium.
Levenscyclus
De standaardconstructor van WriteAccessor is expliciet verwijderd en mag niet worden gebruikt [SWS_PER_00596]. (Interpretatie: instanties van WriteAccessor worden vermoedelijk aangemaakt en ter beschikking gesteld via factory-methoden van bovenliggende persistentiebeheereenheden zoals file-storage.) Vraag Q-af92be8494274611 (open)
De vernietiging vindt plaats via de virtuele destructor ~WriteAccessor()[SWS_PER_00597]. De klasse en haar methoden zijn gespecificeerd als exception-safe (“exception safe”) en gedeclareerd als noexcept. Met betrekking tot gelijktijdigheid is WriteAccessor niet thread-safe (“not thread-safe”) [SWS_PER_00597]; parallelle toegangen tot dezelfde instantie moeten extern door de applicatie worden beveiligd.
Gebruikspad
Het reguliere verloop omvat het schrijven van gegevens in ongeformatteerde of geformatteerde modus, het optioneel aanpassen van de bestandsgrootte en de uiteindelijke persistente opslag:
Binaire gegevens schrijven: via WriteBinary() wordt een bytebereik (ara::core::Span<const ara::core::Byte>) naar het bestand geschreven [SWS_PER_00423].
Tekstgegevens schrijven: met behulp van WriteText() worden tekenreeksen via een ara::core::StringView doorgegeven [SWS_PER_00166]. Aanvullend is operator<< beschikbaar als gemakkelijke functie voor niet-kritische usecases, waarbij optredende fouten stilzwijgend worden genegeerd [SWS_PER_00125].
Persisteren afdwingen: het tijdstip van fysieke opslag hangt af van de persistentie-implementatie; SyncToFile() flasht de buffer van het besturingssysteem bindend naar het opslagmedium [SWS_PER_00122], [SWS_PER_00423], [SWS_PER_00166].
Bestandsgrootte aanpassen: met SetFileSize() kan het bestand worden ingekort, waardoor overtollige inhoud wordt verwijderd; de bestandspositie blijft ongewijzigd of wordt op de laatste geldige positie respectievelijk 0 gezet [SWS_PER_00428].
De methoden WriteBinary(), WriteText(), SyncToFile() en SetFileSize() retourneren een ara::core::Result<void> die bij mislukkingen specifieke foutcodes bevat:
PerErrc::kPhysicalStorageFailure: toegang tot het fysieke opslagmedium mislukt [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122], [SWS_PER_00428]. De toestand van het bestand is onbekend en kan volledig beschadigd zijn (geen rollback-semantiek).
PerErrc::kOutOfStorageSpace: onvoldoende fysieke opslagruimte [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122]. Bij het schrijven wordt het overschrijdende deel verworpen en staat de positie aan het bestandseinde (geen rollback-semantiek).
PerErrc::kEncryptionFailed: versleuteling of ontsleuteling mislukt [SWS_PER_00423], [SWS_PER_00166], [SWS_PER_00122], [SWS_PER_00428]. Buffer en positie worden weliswaar bijgewerkt, maar het bestand kan niet worden gepersisteerd en weerspiegelt op het geheugen een oudere versie (rollback-semantiek).
Reduces the size of the file to ’size’, effectively removing the current content of the file beyond this size. The current file position is unchanged if it is lower than ’size’, or set to the last valid position in the file otherwise. If ’size’ is 0, the current file position will also be set to 0.
Writes the content of a Span of Byte to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
Writes the content of a StringView to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
Writes the content of a StringView to the file. This operator is just a comfort feature for non-safety critical Persistency users. If an error occurs during this operation, it is silently ignored.
Reduces the size of the file to ’size’, effectively removing the current content of the file beyond this size. The current file position is unchanged if it is lower than ’size’, or set to the last valid position in the file otherwise. If ’size’ is 0, the current file position will also be set to 0.
Flushes the current file content to the physical storage.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: c625990570f3HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De lidfunctie SyncToFile van de klasse ara::per::WriteAccessor (gedefinieerd in #include "ara/per/write_accessor.h") schrijft de actuele bestandsinhoud synchroon naar het fysieke geheugen [SWS_PER_00122]. De aanroep accepteert geen invoerparameters en retourneert een ara::core::Result<void>, die in geval van succes leeg is of bij een fout specifieke foutcodes van de Persistency-module dan wel fabrikantspecifieke fouten bevat [SWS_PER_00122].
Bij de uitvoering kunnen verschillende foutsituaties optreden, die deels rollback-semantiek hebben [SWS_PER_00122]:
StorageFailure: Treedt op wanneer de fysieke toegang tot het opslagmedium mislukt (geen rollback-semantiek) [SWS_PER_00122].
PerErrc::kOutOfStorageSpace: Wordt geretourneerd indien de fysieke opslagruimte voor het gewijzigde bestand onvoldoende is (geen rollback-semantiek) [SWS_PER_00122].
PerErrc::kQuotaExceeded: Wordt gemeld wanneer het bestand de geconfigureerde maximale grootte AllowedSize van de File Storage overschrijdt (met rollback-semantiek) [SWS_PER_00122].
PerErrc::kEncryptionFailed: Indien de versleuteling van de opgeslagen gegevens mislukt (met rollback-semantiek) [SWS_PER_00122].
PerErrc::kAuthenticationFailed: Indien de berekening van de MAC voor de gegevens mislukt (met rollback-semantiek) [SWS_PER_00122].
Wat betreft de uitvoeringsveiligheid is de methode gedeclareerd als noexcept en gespecificeerd als exception safe[SWS_PER_00122]. Omdat deze echter uitdrukkelijk is geclassificeerd als not thread-safe, moeten gelijktijdige aanroepen op dezelfde WriteAccessor-instantie vermoedelijk door de aanroeper worden gesynchroniseerd [SWS_PER_00122]. Vraag Q-e4b139f136cdcd31 (open)
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR R25-11.
Writes the content of a Span of Byte to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 65db1acb87c9Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
De functie WriteBinary van de klasse ara::per::WriteAccessor schrijft de inhoud van een bytesequentie (ara::core::Span<const ara::core::Byte>) naar een bestand [SWS_PER_00423]. Het tijdstip van de daadwerkelijke persistentie op het opslagmedium hangt af van de implementatie van Persistency; via SyncToFile kan het synchrone persisteren worden geforceerd [SWS_PER_00423]. De functie is gedeclareerd als noexcept en geldt als uitzonderingsveilig [SWS_PER_00423].
Met betrekking tot gelijktijdigheid is WriteBinary gespecificeerd als niet thread-safe (not thread-safe) [SWS_PER_00423]. Parallelle toegangen tot dezelfde accessor moeten op applicatieniveau worden gesynchroniseerd.
Bij een fout wordt een foutcode in ara::core::Result<void> geretourneerd, waarbij de bestandsinhoud beschadigd kan zijn en de huidige positie gewijzigd kan zijn [SWS_PER_00423]:
PerErrc::kPhysicalStorageFailure: Toestand van het bestand is onbekend en kan volledig vernietigd zijn (geen rollback-semantiek) [SWS_PER_00423].
PerErrc::kOutOfStorageSpace: Onvoldoende fysiek geheugen; gegevens die het quotum overschrijden worden verworpen en de bestandspositie staat aan het einde [SWS_PER_00423].
PerErrc::kQuotaExceeded: Het schrijfproces zou de geconfigureerde maximale omvang AllowedSize overschrijden [SWS_PER_00423].
PerErrc::kEncryptionFailed: Versleuteling mislukt; bestandsinhoud en positie worden bijgewerkt, maar niet gepersisteerd (gepersisteerd bestand behoudt de vorige versie) [SWS_PER_00423].
PerErrc::kAuthenticationFailed resp. PerErrc::kValidationFailed: MAC-berekening/-controle mislukt of de validiteit van opgeslagen gegevens is niet gewaarborgd [SWS_PER_00423].
Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van specificatie-element [SWS_PER_00423].
Writes the content of a StringView to the file. The time when the content is persisted depends on the implementation of Persistency. SyncTo File can be used to force Persistency to persist the file content. In case of an error, the file content might be corrupted, and the current position might or might not have changed. The expected state of the file for each supported error can be expected to be as follows: • kPhysicalStorageFailure: The state of the file is unknown. It could have been entirely destroyed. • kEncryptionFailed: The content of the file and the current position will have been updated, but could not be persisted. The persisted file will reflect an older version of the file. • kOutOfStorageSpace: The content of the file will have been updated, but the part of the operation that exceeded the quota will have been discarded. The current position will be at the end of the file.
DOOR AI GEGENEREERDongecontroleerdModel: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: f24ce7c436f3HerkomstOpen vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel
Gebruik
De synchrone methode WriteText van de interface ara::per::WriteAccessor schrijft de inhoud van een ara::core::StringView naar het geopende bestand [SWS_PER_00166]. De functie is gespecificeerd als uitzonderingsveilig (exception safe) en declareert geen C++-exceptions te werpen (noexcept) [SWS_PER_00166]. Het exacte tijdstip van fysieke opslag hangt af van de Persistency-implementatie; een onmiddellijke opslag op het opslagmedium kan worden geforceerd via SyncToFile[SWS_PER_00166].
Foutafhandeling
Als retourwaarde dient een ara::core::Result<void>, die bij een fout foutcodes uit PerErrc of fabrikantspecifieke fouten meldt [SWS_PER_00166]. Mislukt de bewerking, dan kan de bestandsinhoud beschadigd zijn en kan de schrijfpositie gewijzigd zijn [SWS_PER_00166]:
PerErrc::kPhysicalStorageFailure: Fysieke geheugentoegang mislukt; de bestandstoestand is onbekend of het bestand is vernietigd [SWS_PER_00166].
PerErrc::kEncryptionFailed: Versleuteling mislukt; bestandsinhoud en positie in het geheugen worden bijgewerkt, maar kunnen niet worden gepersisteerd, waardoor een oudere gepersisteerde versie behouden blijft [SWS_PER_00166].
PerErrc::kOutOfStorageSpace: Onvoldoende fysieke opslagruimte; gegevens boven het quotum worden verworpen en de positie bevindt zich aan het bestandseinde [SWS_PER_00166].
PerErrc::kQuotaExceeded, PerErrc::kValidationFailed en PerErrc::kAuthenticationFailed: Melden quotumoverschrijdingen (AllowedSize) evenals validatie- of authenticatiefouten met behoud van rollback-semantiek [SWS_PER_00166].
Gelijktijdigheid en beperkingen
De bewerking is geclassificeerd als niet thread-safe (not thread-safe) [SWS_PER_00166]. Bij parallelle toegangen tot dezelfde instantie van WriteAccessor moeten aanroepers de aanroepen vermoedelijk zelfstandig synchroniseren. Vraag Q-73a6dbdb7d3df643 (open)
Deze gebruiksinstructie is gebaseerd op de specificatie AUTOSAR Adaptive Platform R25-11.
Writes the content of a StringView to the file. This operator is just a comfort feature for non-safety critical Persistency users. If an error occurs during this operation, it is silently ignored.
gemini-3.8-flash-low· 2026-10-13 · Duits origineel