AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 9cb072b2740a출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
키-값 및 파일 스토리지를 통해 애플리케이션 데이터의 영구 저장 및 관리를 지원합니다.
네임스페이스 ara::per은(는) 인스턴스 식별자를 통해 Adaptive 애플리케이션이 파일 기반 및 키-값 기반 스토리지 영역에 접근할 수 있도록 하여 영구 데이터 저장을 위한 인터페이스를 제공합니다([SWS_PER_00052], [SWS_PER_00116]). 애플리케이션은 공유 핸들을 통해 열린 스토리지를 관리하고, 매니페스트 변경 시 조율된 업데이트를 수행하며, 복구 메커니즘을 통해 불일치 데이터를 복구할 수 있습니다([SWS_PER_00333], [SWS_PER_00357]). 스토리지 접근은 핸들을 통해 동시에 이루어지는 반면, 업데이트나 스토리지 리셋과 같은 관리 작업은 동시 접근이 없어야 합니다([SWS_PER_00311]).
컨텍스트
네임스페이스 ara::per은(는) AUTOSAR Adaptive Platform의 지속성 기능 그룹 인터페이스를 제공합니다. 주요 책임은 시스템 시작 및 프로세스 수명 주기를 넘어 애플리케이션 데이터를 지속적이고 영구적으로 저장하는 것입니다. 이 모듈은 두 가지 기본 스토리지 패러다임을 구분합니다. 구조화된 키-값 쌍을 위한 KeyValueStorage과(와) 파일 기반 스토리지 접근을 위한 FileStorage입니다. Adaptive 애플리케이션은 ara::core::InstanceSpecifier을(를) 통해 구성된 포트 프로토타입을 사용하여 이러한 리소스에 접근합니다([SWS_PER_00052], [SWS_PER_00116]).
네임스페이스의 중요한 상호작용 파트너는 런타임 중에 업데이트된 대상 구성(Target Configuration)을 제공할 수 있는 Update and Configuration Management(UCM)([SWS_PER_00576], [SWS_PER_00577]), 그리고 ara::per이(가) 일관성, 중복성 및 데이터 보안을 보장하는 물리적 저장 매체([SWS_PER_00311])입니다.
스토리지 객체에 대한 접근은 핸들 추상화를 통해 제어됩니다. OpenKeyValueStorage 또는 OpenFileStorage을(를) 통해 스토리지를 열면 SharedHandle이(가) 생성됩니다([SWS_PER_00052], [SWS_PER_00116]). 여러 스레드가 동일한 스토리지에 동시에 접근할 수 있으므로 단일 SharedHandle이(가) 유효 범위를 벗어난다고 해서 물리적 리소스가 반드시 닫히는 것은 아닙니다. 닫기는 참조하는 모든 SharedHandle 인스턴스가 소멸된 후에만 수행됩니다([SWS_PER_00052], [SWS_PER_00116]).
FileStorage 내의 파일에 대해 생성 및 수정 상태가 자세히 추적됩니다. 열거형 FileCreationState은(는) 파일이 설치 시(kCreatedDuringInstallation), 업데이트 중(kCreatedDuringUpdate), 리셋을 통해(kCreatedDuringReset), 복구의 결과로(kCreatedDuringRecovery) 또는 애플리케이션 자체에 의해(kCreatedByApplication) 생성되었는지를 나타냅니다([SWS_PER_00435]). 유사하게 FileModificationState은(는) 파일이 언제 어떤 작업에 의해 마지막으로 수정되었는지를 반영합니다([SWS_PER_00436]).
초기 상태 관리를 위해 네임스페이스는 리셋 함수를 제공합니다. ResetKeyValueStorage([SWS_PER_00334]) 및 ResetAllFiles([SWS_PER_00336])은(는) 개별 스토리지를 매니페스트에 초기에 정의된 값으로 초기화합니다. 반면에 전역 작업 ResetPersistency([SWS_PER_00358])은(는) 모든 키-값 및 파일 스토리지를 완전히 비우며, 이들의 재생성은 OpenFileStorage 또는 OpenKeyValueStorage의 다음 호출 시 수행됩니다.
일반적인 애플리케이션 절차에는 구성 업데이트 확인, 데이터 마이그레이션 적용 및 후속 스토리지 접근이 포함됩니다:
정상 작동 전 또는 작동 중에 애플리케이션은 CheckForManifestUpdate을(를) 사용하여 UCM이 새 대상 구성을 설치했는지 확인합니다([SWS_PER_00576]). 이러한 경우 새 매니페스트를 ReloadPersistencyManifest을(를) 통해 읽어옵니다([SWS_PER_00577]). 후속 검증 단계 중에 애플리케이션은 UpdatePersistency을(를) 시작합니다([SWS_PER_00357]). 버전별 데이터 마이그레이션을 제어하기 위해 애플리케이션은 사전에 RegisterApplicationDataUpdateCallback을(를) 통해 이전 계약 버전에 대한 알림을 받고 애플리케이션 자체 마이그레이션 단계를 실행하는 콜백 함수를 등록합니다([SWS_PER_00356]). 또한 요소 변경 사항은 RegisterDataUpdateIndication을(를) 사용하여 모니터링할 수 있습니다([SWS_PER_00578]). 업데이트가 완료된 후 CleanUpPersistency은(는) 오래된 백업 및 중복된 이전 데이터를 제거합니다([SWS_PER_00567]).
정상적인 접근을 위해 애플리케이션은 OpenKeyValueStorage([SWS_PER_00052]) 또는 OpenFileStorage([SWS_PER_00116])을(를) 통해 대상 리소스를 엽니다. FileStorage 내의 파일 접근은 연산자 operator|([SWS_PER_00144]) 및 operator|=([SWS_PER_00434])을(를) 통해 결합되는 열거형 OpenMode의 비트마스크(예: kAtTheBeginning, kAtTheEnd, kTruncate, kAppend)로 제어됩니다([SWS_PER_00147]). 위치 지정은 Origin(kBeginning, kCurrent, kEnd)을(를) 기준으로 수행됩니다([SWS_PER_00146]). 현재 점유된 스토리지 크기는 런타임에 GetCurrentKeyValueStorageSize([SWS_PER_00405]) 및 GetCurrentFileStorageSize([SWS_PER_00406])을(를) 통해 확인할 수 있습니다.
무결성 손실 및 복구: 구조적 손상(PerErrc::kIntegrityCorrupted) 또는 중복성 검사 실패(PerErrc::kValidationFailed) 시 ara::per은(는) RecoverKeyValueStorage([SWS_PER_00333]) 또는 RecoverAllFiles([SWS_PER_00335])을(를) 통한 최선 노력(Best-Effort) 복구를 지원합니다. 안전 관련 애플리케이션은 RegisterRecoveryReportCallback([SWS_PER_00433])을(를) 통해 RecoveryReportKind(예: kKeyValueStorageRecovered, kFileRecovered)에 기반한 시정 조치를 자동으로 기록할 수 있습니다([SWS_PER_00432]).
스토리지 한도 및 물리적 오류: 할당량 또는 물리적 용량이 초과되면 PerErrc::kOutOfStorageSpace, PerErrc::kQuotaExceeded 또는 PerErrc::kTooManyFiles이(가) 보고됩니다([SWS_PER_00311]). 하드웨어 또는 파일 시스템 오류는 PerErrc::kPhysicalStorageFailure(으)로 이어집니다([SWS_PER_00311]).
보안 및 접근 모드: 암호화 검증 또는 계산이 실패하면 모듈은 PerErrc::kEncryptionFailed 또는 PerErrc::kAuthenticationFailed을(를) 반환합니다([SWS_PER_00311]). 읽기 전용 스토리지 영역에 대한 쓰기 시도는 PerErrc::kIllegalWriteAccess(으)로 거부됩니다([SWS_PER_00311]).
KI-gestützte Gruppierung auf Basis der Records und Spezifikationsauszüge; keine Gliederung aus der AUTOSAR-Spezifikation.
클래스 다이어그램
Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.
Returns the space in bytes currently occupied by a File Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the File Storage is not opened and no other operation on the File Storage takes place at the same time.
Returns the space in bytes currently occupied by a Key-Value Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the Key-Value Storage is not opened and no other operation on the Key-Value Storage takes place at the same time.
Opens a File Storage. OpenFileStorage will fail with kResourceBusy when the File Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. Because multiple threads can access the same File Storage concurrently, the File Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same File Storage went out of scope.
Opens a Key-Value Storage. OpenKeyValueStorage will fail with kResourceBusy when the Key-Value Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. Because multiple threads can access the same Key-Value Storage concurrently, the Key-Value Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same Key-Value Storage went out of scope.
Defines the errors for Persistency. The enumeration values 0 - 255 are reserved for AUTOSAR assigned errors, the stack provider is free to define additional errors starting from 256.
Recovers a File Storage, including all files. RecoverAllFiles recovers a File Storage when the redundancy checks fail. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. This method does a best-effort recovery of all files. After recovery, files might show outdated or initial content, or might be lost.
Recovers a Key-ValueStorage. RecoverKeyValueStorage allows to recover a Key-Value Storage when the redundancy checks fail. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. This method does a best-effort recovery of all key-value pairs. After recovery, keys might show outdated or initial value, or might be lost.
Register a recovery reporting callback with Persistency. This callback can be used in safety-aware Adaptive Applications to detect actions of the Persistency that are related to the correctness of the persisted data and the reliability of the storage.
Checks for updates of the Persistency Target Configuration. This method can be used to detect configuration updates that are installed by UCM while the Adaptive Application that uses Persistency is running. To re-read the updated Target Configuration, the Adaptive Application needs to call ara::per:: ReloadPersistencyManifest.
Registers an application data update callback with Persistency. The provided callback function will be called by Persistency if an update of stored application data might be necessary. This decision is based on the contract versions. The contract version that last accessed Persistency is provided as an argument to the callback, as well as the ara::core::InstanceSpecifier referring to the updated Key- Value Storage or File Storage. Based on this information, the Adaptive Application can decide which updates are actually necessary, e.g. a migration from any older contract version could be supported, with different steps required for each of these. The provided function will be called from the context of ara::per::UpdatePersistency, ara::per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
Registers a data update indication callback with Persistency. The provided callback function will be called by Persistency when an update of stored data happened. It will be called from the context of ara::per::UpdatePersistency, ara:: per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
Re-reads the Target Configuration. This method can be used to prepare for updates of the Key-Value Storages and File Storages of Persistency after a new Target Configuration was installed by UCM while the Adaptive Application that uses Persistency is running. Storages are only updated after closing them, either when they are opened again or by an explicit call to ara:: per::UpdatePersistency.
Resets a File Storage, including all files. ResetAllFiles resets a File Storage to the initial state, containing only the files which were deployed from the Target Configuration, with their initial content. Afterwards, the File Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles.
Resets a Key-Value Storage to the initial state. ResetKeyValueStorage allows to reset a Key-Value Storage to the initial state, containing only key-value pairs which were deployed from the Target Configuration, with their initial values. Afterwards, the Key-Value Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage.
Resets all Key-Value Storages and File Storages by entirely removing their content. The Key-Value Storages and File Storages will be re-created when ara::per:: OpenFileStorage or ara::per::OpenKeyValueStorage is called next time.
Updates all Persistency Key-Value Storages and File Storages after a new Target Configuration was installed. This method can be used to update the persistent data of the Adaptive Application during verification phase.
Defines the errors for Persistency. The enumeration values 0 - 255 are reserved for AUTOSAR assigned errors, the stack provider is free to define additional errors starting from 256.
=1 The requested Key-Value Storage or File Storage is not configured in the AUTOSAR model.
kKeyNotFound
=2 The provided key cannot be not found in the Key-Value Storage.
kIllegalWriteAccess
=3 The operation could not be performed because the accessed Key-Value Storage or File Storage is configured as read-only or write-only-once.
kPhysicalStorageFailure
=4 An error occurred when accessing the physical storage, e.g. because of a corrupted file system or corrupted hardware, or because of insufficient access rights.
kIntegrityCorrupted
=5 The structural integrity of the Key-Value Storage or File Storage could not be established. This can happen when the internal structure of a Key-Value Storage or the metadata of a File Storage is corrupted.
kValidationFailed
=6 The validation of redundancy measures failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
kEncryptionFailed
=7 The encryption or decryption failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
kDataTypeMismatch
=8 The provided data type does not match the stored data type.
kInitValueNotAvailable
=9 The operation could not be performed because no initial value is available.
kResourceBusy
= 10 The operation could not be performed because the resource is currently busy.
kOutOfStorageSpace
= 12 The physical storage space was exceeded.
kFileNotFound
= 13 The requested file name cannot be not found in the File Storage.
kInvalidPosition
= 15 SetPosition tried to move to a position that is not reachable (i.e. which is smaller than zero or greater than the current size of the file).
kEof
= 16 The Persistency user tried to read from the end of the file or from an empty file.
kInvalidOpenMode
= 17 Opening a file failed because the requested combination of Open Modes is invalid.
kInvalidSize
= 18 SetFileSize tried to set a new size that is bigger than the current file size.
kTooManyFiles
= 19 The maximum number of files was exceeded.
kQuotaExceeded
= 20 The allocated storage quota was exceeded.
kAuthenticationFailed
= 21 Calculating or checking of the MAC failed for a single key-value pair, for the whole Key-Value Storage, for a single file, or for the whole File Storage.
Request a governed re-review of this record. The record is not changed immediately.
=1 A Key-Value Storage was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements is empty, reportedInstances contains the indices of the affected Key-Value Storage copies.
kKeyValueStorageRecovered
=2 A Key-Value Storage was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements is empty, reportedInstances contains the indices of the affected Key-Value Storage copies.
kKeyRecoveryFailed
=3 A set of key-value pairs was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements contains the list of affected keys, reportedInstances contains the indices of the affected Key-Value Storage or key-value pair copies. In general, the nth key in reportedElements corresponds to the nth index in reported Instances, i.e. a key may be reported several times if several copies are broken. In case only one key-value pair is affected, reported Elements may be provided containing just this key.
kKeyRecovered
=4 A set of key-value pairs was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the Key-Value Storage, reportedElements contains the list of affected keys, reportedInstances contains the indices of the affected Key-Value Storage or key-value pair copies. In general, the nth key in reportedElements corresponds to the nth index in reported Instances, i.e. a key may be reported several times if several copies are broken. In case only one key-value pair is affected, reported Elements may be provided containing just this key.
kFileStorageRecoveryFailed
=5 A File Storage was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements is empty, reportedInstances contains the indices of the affected File Storage copies.
kFileStorageRecovered
=6 A File Storage was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements is empty, reportedInstances contains the indices of the affected File Storage copies.
kFileRecoveryFailed
=7 A set of files was corrupted, an insufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements contains the list of affected file names, reported Instances contains the indices of the affected File Storage or file copies. In general, the nth file name in reportedElements corresponds to the nth index in reportedInstances, i.e. a file name may be reported several times if several copies are broken. In case only one file is affected, reportedElements may be provided containing just this file name.
kFileRecovered
=8 A set of files was corrupted, but a sufficient number of valid copies existed. storage contains the short-name path of the File Storage, reportedElements contains the list of affected file names, reported Instances contains the indices of the affected File Storage or file copies. In general, the nth file name in reportedElements corresponds to the nth index in reportedInstances, i.e. a file name may be reported several times if several copies are broken. In case only one file is affected, reportedElements may be provided containing just this file name.
Request a governed re-review of this record. The record is not changed immediately.
Checks for updates of the Persistency Target Configuration. This method can be used to detect configuration updates that are installed by UCM while the Adaptive Application that uses Persistency is running. To re-read the updated Target Configuration, the Adaptive Application needs to call ara::per:: ReloadPersistencyManifest.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: b1f49db8b33d출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
헤더 ara/per/update.h의 동기 함수 CheckForManifestUpdate은(는) ara::per 네임스페이스에서 Persistency Target Configuration 업데이트가 있는지 확인합니다 [SWS_PER_00576]. 이 함수는 Persistency를 사용하는 Adaptive Application이 이미 실행 중인 동안 Update and Configuration Management(UCM)에 의해 적용된 구성 변경을 감지하는 역할을 합니다 [SWS_PER_00576]. 함수는 매개변수를 받지 않으며 ara::core::Result<bool>을(를) 반환합니다. 마지막 읽기 이후 구성이 업데이트되었으면 true을(를), 변경되지 않은 상태로 유지되었으면 false을(를) 반환합니다 [SWS_PER_00576].
오류 처리 및 동시성
이 함수는 noexcept로 선언되어 있으며 예외 안전(exception safe)이지만 스레드 안전하지는 않습니다(not thread-safe) [SWS_PER_00576]. 오류 발생 시 결과에는 공급업체별 오류 또는 다음 오류 코드 중 하나가 포함됩니다 [SWS_PER_00576]:
kPhysicalStorageFailure: 확인 중 물리적 메모리 액세스에 실패할 때 발생합니다 [SWS_PER_00576].
kIntegrityCorrupted: 손상된 구조적 무결성으로 인해 저장된 데이터를 읽을 수 없을 때 발생합니다 [SWS_PER_00576].
상호 작용
업데이트가 감지되면(반환값 true) 애플리케이션은 변경된 Target Configuration을 실제로 다시 읽어 들이기 위해 이후에 ara::per::ReloadPersistencyManifest을(를) 호출해야 합니다 [SWS_PER_00576].
A Result containing true if the Target Configuration was updated or false if it is unchanged since the last time the Target Configuration was read. In case of an error, it contains any of the errors defined below, or a vendor specific error.
Fehler
Fehlercode
Beschreibung
kPhysicalStorage-Failure
rollback_semantics Returned if access to the physical storage fails during the checking operation.
kIntegrityCor-rupted
rollback_semantics Returned if stored data cannot be read because the structural integrity is corrupted.
Request a governed re-review of this record. The record is not changed immediately.
Removes backup data and other unused data of all Persistency Key-Value Storages and File Storages.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ce1bea3039de출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
ara/per/update.h의 동기 함수 CleanUpPersistency은 인스턴스의 모든 Key-Value 및 File Storage 전반에서 백업 데이터(Backup Data) 및 추가 미사용 데이터를 제거하는 역할을 합니다 [SWS_PER_00567]. 매개변수를 받지 않으며 반환 타입 ara::core::Result<void>을 통해 결과를 반환합니다 [SWS_PER_00567].
동시성 및 제약사항
이 함수는 스레드 안전하지 않으며(not thread-safe) 모든 스토리지 리소스에 대한 독점적 접근을 요구합니다 [SWS_PER_00567]. Key-Value 또는 File Storage의 ara::per::SharedHandle이 아직 열려 있는 경우 호출은 kResourceBusy(으)로 실패합니다 [SWS_PER_00567]. 마찬가지로 UpdatePersistency, ResetPersistency, RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles 또는 ResetAllFiles과 같이 병렬로 실행되는 연산은 오류 코드 kResourceBusy을 초래합니다 [SWS_PER_00567].
Returns the space in bytes currently occupied by a File Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the File Storage is not opened and no other operation on the File Storage takes place at the same time.
Returns the space in bytes currently occupied by a Key-Value Storage. The returned size includes all metadata and the space used for redundancy and backups. The returned size is only guaranteed to be accurate if the Key-Value Storage is not opened and no other operation on the Key-Value Storage takes place at the same time.
Opens a File Storage. OpenFileStorage will fail with kResourceBusy when the File Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. Because multiple threads can access the same File Storage concurrently, the File Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same File Storage went out of scope.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 14078ca86bfb출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
동기 함수 ara::per::OpenFileStorage은 영속 데이터를 위한 파일 스토리지를 열고 공유 액세스 핸들을 통해 이를 제공합니다 [SWS_PER_00116]. 매개변수로 PersistencyFileStorageInterface에 의해 형식화된 포트 프로토타입의 shortName 경로를 지정하는 ara::core::InstanceSpecifier에 대한 참조를 기대합니다. 반환값은 ara::core::Result<ara::core::SharedHandle<FileStorage>>입니다 [SWS_PER_00116].
동시성과 관련하여 이 함수는 스레드 안전 및 예외로부터 안전으로 명시되어 있습니다 [SWS_PER_00116]. 여러 스레드가 동일한 파일 스토리지 인스턴스에 병렬로 액세스할 수 있으므로, 단일 SharedHandle이 유효 범위를 벗어난다고 해서 물리적 스토리지가 반드시 닫히는 것은 아닙니다. 닫기는 참조하는 모든 핸들이 범위를 벗어난 후에야 이루어집니다 [SWS_PER_00116].
오류 발생 시 Result에는 열거형 PerErrc의 오류 코드 또는 제조업체별 오류가 포함됩니다 [SWS_PER_00116]:
PerErrc::kResourceBusy: CleanUpPersistency, ResetPersistency, RecoverAllFiles 또는 ResetAllFiles와 같은 관리 작업이 동시에 실행될 때 반환됩니다. UpdatePersistency가 활성 상태인 동안에는 호출이 RegisterApplicationDataUpdateCallback을 통해 등록된 콜백 외부에서 발생하거나 일치하지 않는 식별자로 수행되는 경우 이 오류가 발생합니다 [SWS_PER_00116], [SWS_PER_00356].
구성 및 액세스 오류: 구성되지 않은 인스턴스의 경우 kStorageNotFound, 물리적 스토리지 오류의 경우 kPhysicalStorageFailure, 무결성, 검증 또는 복호화 문제의 경우 kIntegrityCorrupted, kValidationFailed, kEncryptionFailed 및 kAuthenticationFailed[SWS_PER_00116].
암시적 업데이트 시 용량 제한: kOutOfStorageSpace, kTooManyFiles 또는 kQuotaExceeded[SWS_PER_00116].
모듈과의 상호 작용에서 ResetPersistency을 통한 사전 재설정은 삭제된 파일 스토리지가 다음에 OpenFileStorage을 호출할 때 새로 생성되도록 합니다 [SWS_PER_00358]. 여는 동안 데이터가 업데이트되면 RegisterDataUpdateIndication을 통해 등록된 표시 콜백이 OpenFileStorage의 컨텍스트에서 직접 호출됩니다 [SWS_PER_00578].
이 텍스트는 AUTOSAR Adaptive R25-11 명세를 기반으로 AI에 의해 생성되었습니다.
rollback_semantics Returned if CleanUpPersistency, or ResetPersistency is currently being executed, or if RecoverAllFiles or ResetAllFiles is currently being executed for the same File Storage. Also, while Update Persistency is currently being executed, this error is returned when OpenFileStorage is called outside of the callback registered via RegisterApplicationDataUpdateCallback, or if the used Instance Specifier differs from the one provided by the callback.
no_rollback_semantics Returned if the available physical storage space is insufficient for the files that are added/updated during an implicit update of the File Storage.
rollback_semantics Returned if the files that are added/updated during an implicit update of the File Storage would exceed the configured maximum AllowedSize.
Opens a Key-Value Storage. OpenKeyValueStorage will fail with kResourceBusy when the Key-Value Storage is currently being modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. Because multiple threads can access the same Key-Value Storage concurrently, the Key-Value Storage might not be closed when the SharedHandle returned by this function goes out of scope. It will only be closed when all SharedHandles that refer to the same Key-Value Storage went out of scope.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d24427922381출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용 및 수명 주기
동기 함수 OpenKeyValueStorage은 키-값 스토리지를 열며 thread-safe 및 noexcept로 명시되어 있습니다 [SWS_PER_00052]. 매개변수 kvs로 PersistencyKeyValueStorageInterface에 의해 형식화된 PortPrototype의 경로를 참조하는 ara::core::InstanceSpecifier가 전달됩니다. 반환은 ara::core::Result<SharedHandle<KeyValueStorage>>로 이루어집니다. 여러 스레드가 동일한 스토리지를 동시에 열 수 있으므로, Persistency는 참조하는 모든 SharedHandle 인스턴스가 유효 범위를 벗어난 후에야 물리적 스토리지를 닫습니다 [SWS_PER_00052].
오류 처리 및 동시성
오류 발생 시 Result는 Persistency 오류 도메인의 특정 오류 코드를 반환합니다 [SWS_PER_00052]:
PerErrc::kStorageNotFound: 식별자가 Executable의 구성된 어떤 인터페이스와도 일치하지 않습니다.
PerErrc::kResourceBusy: 이 스토리지에 대해 CleanUpPersistency, ResetPersistency[SWS_PER_00358], RecoverKeyValueStorage 또는 ResetKeyValueStorage가 동시에 실행될 때 발생합니다. UpdatePersistency 동안에는 RegisterApplicationDataUpdateCallback을 통해 등록된 콜백 내에서 그곳에 전달된 인스턴스 식별자로만 호출이 허용됩니다 [SWS_PER_00356].
결함, 유효성 검사 또는 암호화 오류 시 PerErrc::kPhysicalStorageFailure, PerErrc::kIntegrityCorrupted, PerErrc::kValidationFailed, PerErrc::kEncryptionFailed 및 PerErrc::kAuthenticationFailed.
암시적 업데이트 중 스토리지 공간 부족 또는 할당량 초과 시 PerErrc::kOutOfStorageSpace 및 PerErrc::kQuotaExceeded.
상호 작용
이전에 ResetPersistency을 사용하여 모든 데이터를 삭제한 경우 다음에 OpenKeyValueStorage을 호출할 때 스토리지가 자동으로 재생성됩니다 [SWS_PER_00358]. 연 후에는 DiscardPendingChanges을 통해 저장되지 않은 수정을 열기 상태로 되돌릴 수 있습니다 [SWS_PER_00365]. 또한 열기 작업은 RegisterDataUpdateIndication를 통해 등록된 콜백의 실행을 트리거할 수 있습니다 [SWS_PER_00578].
A Result containing a SharedHandle for the KeyValueStorage. In case of an error, it contains any of the errors defined below, or a vendor specific error.
Fehler
Fehlercode
Beschreibung
Found
Returned if the passed InstanceSpecifier does not match any PersistencyKeyValueStorageInterface configured for this Executable.
rollback_semantics Returned if CleanUpPersistency, or ResetPersistency is currently being executed, or if RecoverKeyValueStorage or ResetKeyValue Storage is currently being executed for the same Key-Value Storage. Also, while UpdatePersistency is currently being executed, this error is returned when OpenKeyValueStorage is called outside of the callback registered via RegisterApplicationDataUpdate Callback, or if the used InstanceSpecifier differs from the one provided by the callback.
no_rollback_semantics Returned if the available physical storage space is insufficient for the values that are added/updated during an implicit update of the Key-Value Storage.
rollback_semantics Returned if the values that are added/updated during an implicit update of the Key-Value Storage would exceed the configured maximumAllowedSize.
Recovers a File Storage, including all files. RecoverAllFiles recovers a File Storage when the redundancy checks fail. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles. This method does a best-effort recovery of all files. After recovery, files might show outdated or initial content, or might be lost.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ca84cc440ba3출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 RecoverAllFiles은(는) 이중화 검사가 실패할 때 파일 기반 스토리지(File Storage) 및 그 안에 저장된 모든 파일의 복구를 수행합니다 [SWS_PER_00335]. 호출은 구성된 포트 프로토타입에 대한 InstanceSpecifier을(를) 지정하여 동기식으로 수행되며 ara::core::Result<void>을(를) 반환합니다 [SWS_PER_00335].
복구는 Best-Effort 원칙에 따라 작동합니다. 완료 후 파일에 오래된 콘텐츠가 포함되거나 초기 상태로 재설정되거나 완전히 유실될 수 있습니다 [SWS_PER_00335]. 저장 매체에 대한 액세스가 실패하거나(PerErrc::kPhysicalStorageFailure) 저장 공간이 부족한 경우(PerErrc::kOutOfStorageSpace) 롤백 보장이 존재하지 않습니다 [SWS_PER_00335]. 암호화(PerErrc::kEncryptionFailed), 무결성 검사(PerErrc::kAuthenticationFailed) 또는 스토리지 크기 제한(PerErrc::kQuotaExceeded)에서 오류가 발생하는 경우 롤백 시맨틱이 적용됩니다 [SWS_PER_00335]. 식별자가 구성된 인터페이스와 일치하지 않으면 PerErrc::kStorageNotFound[SWS_PER_00335]이(가) 발생합니다.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if ResetAllFiles is currently being executed for the same File Storage, or a Shared Handle of the same File Storage is currently in use.
Recovers a Key-ValueStorage. RecoverKeyValueStorage allows to recover a Key-Value Storage when the redundancy checks fail. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage. This method does a best-effort recovery of all key-value pairs. After recovery, keys might show outdated or initial value, or might be lost.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: ba269bfce693출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
네임스페이스 ara::per의 동기 함수 RecoverKeyValueStorage은 중복성 검사 실패([SWS_PER_00333]) 후 키-값 스토리지를 복구하는 역할을 합니다. 매개변수 kvs으로는 해당 PortPrototype의 ShortName 경로를 참조하는 ara::core::InstanceSpecifier가 전달됩니다([SWS_PER_00333]). 복구는 최선형(best-effort) 원칙에 따라 수행되며, 작업 후 키는 오래된 값이나 초기 값을 갖거나 완전히 유실될 수 있습니다([SWS_PER_00333]).
이 함수는 스레드 안전으로 지정되어 있지만, 해당 키-값 스토리지가 열려 있는 경우, 즉 활성 SharedHandle이 하나 이상 존재하는 경우 실행이 오류 코드 PerErrc::kResourceBusy과 함께 실패합니다([SWS_PER_00052], [SWS_PER_00333]). 다른 스레드가 UpdatePersistency([SWS_PER_00357]), CleanUpPersistency([SWS_PER_00567]), ResetPersistency([SWS_PER_00358]) 또는 ResetKeyValueStorage([SWS_PER_00334])과 같이 수정 작업을 수행하는 함수를 동시에 호출할 때도 동일한 오류가 발생합니다. 복구 도중 OpenKeyValueStorage를 kResourceBusy과 함께 호출하는 경우에도 실패합니다([SWS_PER_00052]).
결과는 동기적으로 ara::core::Result<void>으로 반환됩니다. PerErrc::kResourceBusy 외에도 다음과 같은 특정 오류가 정의되어 있습니다([SWS_PER_00333]):
PerErrc::kStorageNotFound: 전달된 식별자가 구성된 인터페이스와 일치하지 않습니다.
PerErrc::kPhysicalStorageFailure: 물리적 스토리지 접근 실패(롤백 시맨틱 없음).
PerErrc::kOutOfStorageSpace: 복구된 데이터를 위한 물리적 저장 공간 부족(롤백 시맨틱 없음).
PerErrc::kQuotaExceeded: 구성된 최대 길이 초과(maximumAllowedSize).
PerErrc::kEncryptionFailed 및 PerErrc::kAuthenticationFailed: 암호화 또는 MAC 계산 오류.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if ResetKeyValue Storage is currently being executed for the same Key-Value Storage, or a SharedHandle of the same Key-Value Storage is currently in use.
Registers an application data update callback with Persistency. The provided callback function will be called by Persistency if an update of stored application data might be necessary. This decision is based on the contract versions. The contract version that last accessed Persistency is provided as an argument to the callback, as well as the ara::core::InstanceSpecifier referring to the updated Key- Value Storage or File Storage. Based on this information, the Adaptive Application can decide which updates are actually necessary, e.g. a migration from any older contract version could be supported, with different steps required for each of these. The provided function will be called from the context of ara::per::UpdatePersistency, ara::per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
The callback function to be called by Persistency after an update of persistent data took place. The function will be called with the shortName path of an updated Key-Value Storage or File Storage, and with the contract version with which the Persistency was last accessed.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Registers a data update indication callback with Persistency. The provided callback function will be called by Persistency when an update of stored data happened. It will be called from the context of ara::per::UpdatePersistency, ara:: per::OpenKeyValueStorage, or ara::per::OpenFileStorage.
The callback function to be called by Persistency after an update of persistent data took place. The function will be called with the shortName path of an updated Key-Value Storage or File Storage, and with the the updated elements of the storage.
monitoredStorage
A Key-Value Storage or File Storage for which updates shall be reported.
monitoredElements
A set of elements for which updates shall be reported.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Register a recovery reporting callback with Persistency. This callback can be used in safety-aware Adaptive Applications to detect actions of the Persistency that are related to the correctness of the persisted data and the reliability of the storage.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 5828fc3d3f00출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
"ara::per 네임스페이스의 RegisterRecoveryReportCallback 함수([SWS_PER_00433])는 Persistency 컴포넌트에 콜백 루틴을 등록하는 역할을 합니다. 이 함수는 안전 관련 Adaptive Applications에서 영속화된 데이터의 정확성 및 스토리지의 신뢰성과 관련된 Persistency의 수정 조치를 감지하는 데 사용됩니다 [SWS_PER_00433]."
매개변수 및 호출 시맨틱
"매개변수로는 사용 가능한 중복성을 활용하여 저장된 데이터의 오류가 성공적으로 수정되었을 때 Persistency에 의해 호출되는 std::function인 recoveryReportCallback이(가) 전달됩니다 [SWS_PER_00433]. 이때 콜백에는 다음과 같은 컨텍스트 정보가 전달됩니다 [SWS_PER_00433]:"
"storage: ara::core::InstanceSpecifier 형식의 해당 Key-Value Storage 또는 File Storage 경로(shortName)."
"reportedElements: 영향을 받는 요소들의 식별자 벡터(ara::core::Vector<ara::core::String>)."
"reportedInstances: 영향을 받는 인스턴스들의 벡터(ara::core::Vector<std::uint8_t>)."
오류 처리 및 동시성
"이 함수는 반환값이 없으며 noexcept(으)로 선언되어 있습니다. 또한 예외 안전(exception safe)한 것으로 간주됩니다 [SWS_PER_00433]. 자체 오류 코드는 존재하지 않습니다 [SWS_PER_00433]. 스레드 안전성 측면에서 이 인터페이스는 not thread-safe로 분류됩니다 [SWS_PER_00433]. 따라서 이 호출은 일반적으로 동시 스토리지 접근이 시작되기 전 애플리케이션의 초기화 단계에서 수행될 것으로 보입니다." 질문 Q-e5b93ea58fb56a1c (열림)
"이 사용 지침은 AI에 의해 작성되었으며 AUTOSAR 플랫폼 사양을 기반으로 합니다."
The callback function to be called by Persistency to report errors in the stored data that were corrected using the available redundancy. The function will be called with the shortName path of the affected Key-Value Storage or File Storage in storage and information on what has been corrected, placed in the parameters recoveryReport Kind, reportedElements, and reportedInstances.
Rückgabewert
Typ
Beschreibung
None
Request a governed re-review of this record. The record is not changed immediately.
Re-reads the Target Configuration. This method can be used to prepare for updates of the Key-Value Storages and File Storages of Persistency after a new Target Configuration was installed by UCM while the Adaptive Application that uses Persistency is running. Storages are only updated after closing them, either when they are opened again or by an explicit call to ara:: per::UpdatePersistency.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 19920ccb9cf9출처열린 질문 (1)
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
ara::per 네임스페이스의 동기 함수 ReloadPersistencyManifest(#include "ara/per/update.h"에 선언됨)은 Persistency의 타깃 구성(Target Configuration)을 다시 읽어 들입니다 [SWS_PER_00577]. 이 함수는 Adaptive Application의 런타임 동안 Update and Config Management(UCM)에 의해 새로운 타깃 구성이 설치된 후 Key-Value Storage 및 File Storage의 업데이트를 준비하는 데 사용됩니다 [SWS_PER_00577].
일반적으로 애플리케이션은 CheckForManifestUpdate[SWS_PER_00576]을(를) 사용하여 구성 업데이트가 있는지 미리 확인한 다음 ReloadPersistencyManifest을(를) 호출합니다 [SWS_PER_00576]. 그러나 다시 읽어 들이더라도 영구 스토리지가 즉시 업데이트되지는 않습니다. 스토리지는 닫힌 후에만 업데이트되며, 다시 열릴 때 또는 ara::per::UpdatePersistency의 명시적 호출을 통해 업데이트됩니다 [SWS_PER_00577]. 해석: 이미 열려 있는 스토리지 영역은 이 호출로 인해 자동으로 닫히지 않을 가능성이 높으므로 애플리케이션이 이를 직접 닫거나 명시적으로 업데이트해야 합니다. 질문 Q-16f9dae418feb3fa (열림)
이 함수는 매개변수를 받지 않으며 ara::core::Result<void>을(를) 반환합니다 [SWS_PER_00577]. 오류 발생 시 결과에는 공급업체별 오류 또는 롤백 시맨틱을 갖는 다음 오류 코드 중 하나가 포함됩니다 [SWS_PER_00577]:
kPhysicalStorageFailure: 읽기 작업 중 물리적 메모리 액세스에 실패할 때 발생합니다 [SWS_PER_00577].
kIntegrityCorrupted: 손상된 구조적 무결성으로 인해 저장된 데이터를 읽을 수 없을 때 발생합니다 [SWS_PER_00577].
동시성과 관련하여 이 함수는 스레드 안전하지 않음(not thread-safe)으로 명시되어 있으나 예외 안전(exception safe) 및 noexcept로 선언되어 있습니다 [SWS_PER_00577]. 따라서 병렬 호출은 애플리케이션 측에서 동기화되어야 합니다.
Resets a File Storage, including all files. ResetAllFiles resets a File Storage to the initial state, containing only the files which were deployed from the Target Configuration, with their initial content. Afterwards, the File Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the File Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, ResetPersistency, RecoverAllFiles, or ResetAllFiles.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: f645139d391c출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
함수 ResetAllFiles은(는) File Storage를 현재 Target Configuration에 따른 초기 출하 상태로 동기식으로 재설정합니다 [SWS_PER_00336]. 성공적으로 실행된 후 스토리지에는 마치 새로 설치된 것처럼 원래 콘텐츠를 가진 거기에 정의된 파일만 포함됩니다 [SWS_PER_00336].
사용법 및 동시성: 매개변수 fs을(를) 통해 PersistencyFileStorageInterface(으)로 유형화된 PortPrototype의 인스턴스 식별자가 전달됩니다 [SWS_PER_00336]. 함수가 thread-safe 및 exception safe로 명시되어 있지만 배타적 스토리지 액세스를 전제로 합니다. 스토리지가 현재 열려 있거나(예: OpenFileStorage[SWS_PER_00116]의 활성 SharedHandle을(를) 통해) UpdatePersistency[SWS_PER_00357], CleanUpPersistency[SWS_PER_00567], ResetPersistency[SWS_PER_00358], RecoverAllFiles[SWS_PER_00335] 또는 ResetAllFiles의 또 다른 호출에 의해 병렬로 수정되는 경우 실행이 실패합니다 [SWS_PER_00336].
오류 처리: 함수는 ara::core::Result<void>을(를) 반환합니다 [SWS_PER_00336]. PerErrc의 가능한 오류 코드는 다음과 같습니다:
kResourceBusy: 파일 스토리지가 열려 있거나 병렬로 수정되고 있습니다(롤백 시맨틱) [SWS_PER_00336].
kStorageNotFound: 식별자가 Executable에 대해 구성된 인터페이스와 일치하지 않습니다 [SWS_PER_00336].
kPhysicalStorageFailure 또는 kOutOfStorageSpace: 물리적 스토리지 오류 또는 불충분한 스토리지 공간(롤백 시맨틱 없음) [SWS_PER_00336].
kEncryptionFailed 또는 kAuthenticationFailed: 암호화 또는 MAC 계산 오류(롤백 시맨틱) [SWS_PER_00336].
상호 작용: 재설정 후 복원된 파일은 상태 쿼리 시 FileCreationState::kCreatedDuringReset[SWS_PER_00435] 및 FileModificationState::kModifiedDuringReset[SWS_PER_00436] 상태를 갖습니다.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if RecoverAllFiles is currently being executed for the same File Storage, or a Shared Handle of the same File Storage is currently in use.
Resets a Key-Value Storage to the initial state. ResetKeyValueStorage allows to reset a Key-Value Storage to the initial state, containing only key-value pairs which were deployed from the Target Configuration, with their initial values. Afterwards, the Key-Value Storage will appear as if it was newly installed from the current Target Configuration. It will fail with kResourceBusy when the Key-Value Storage is currently open, or when it is modified by a call from another thread to UpdatePersistency, CleanUpPersistency, Reset Persistency, RecoverKeyValueStorage, or ResetKeyValueStorage.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: 48697319880f출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
동기 함수 ResetKeyValueStorage은 특정 키-값 스토리지를 초기 상태로 재설정합니다[SWS_PER_00334]. 성공적으로 실행된 후 스토리지는 Target Configuration을 통해 제공된 초기 값을 가진 키-값 쌍만을 배타적으로 포함하며, 이후 스토리지는 현재 구성에서 새로 설치된 것처럼 동작합니다[SWS_PER_00334]. 매개변수로는 구성된 PersistencyKeyValueStorageInterface의 PortPrototype을 참조하는 kvs 경로가 ara::core::InstanceSpecifier로 전달됩니다[SWS_PER_00334].
이 함수는 thread-safe 및 exception safe로 지정되어 있지만, 열려 있는 스토리지 및 글로벌 지속성 작업과 관련된 엄격한 동시성 조건이 적용됩니다[SWS_PER_00334]:
해당 키-값 스토리지가 현재 열려 있거나(즉, SharedHandle이 여전히 존재함, [SWS_PER_00052] 참조) 동일한 스토리지에서 RecoverKeyValueStorage[SWS_PER_00333]를 사용한 복구가 동시에 실행 중인 경우 호출은 PerErrc::kResourceBusy과 함께 실패합니다[SWS_PER_00334].
결과로 함수는 ara::core::Result<void>을 반환합니다[SWS_PER_00334]. 오류 발생 시 kResourceBusy 외에도 다음과 같은 특정 오류 코드가 발생합니다: PerErrc::kStorageNotFound(유효하지 않은 InstanceSpecifier), PerErrc::kPhysicalStorageFailure(저장 매체 접근 오류, 롤백 시맨틱 없음), PerErrc::kOutOfStorageSpace(초기 값을 위한 저장 공간 부족, 롤백 시맨틱 없음), PerErrc::kEncryptionFailed(암호화 오류) 및 PerErrc::kAuthenticationFailed(MAC 계산 오류)[SWS_PER_00334].
이 사용 참고사항은 AUTOSAR R25-11 사양을 바탕으로 AI에 의해 생성되었습니다.
rollback_semantics Returned if UpdatePersistency, CleanUpPersistency, or Reset Persistency is currently being executed, or if RecoverKeyValue Storage is currently being executed for the same Key-Value Storage, or a SharedHandle of the same Key-Value Storage is currently in use.
Resets all Key-Value Storages and File Storages by entirely removing their content. The Key-Value Storages and File Storages will be re-created when ara::per:: OpenFileStorage or ara::per::OpenKeyValueStorage is called next time.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: d1720067a24e출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
헤더 ara/per/update.h의 동기 함수 ResetPersistency([SWS_PER_00358])은 애플리케이션의 모든 Key-Value 스토리지 및 File 스토리지를 완전히 재설정하는 데 사용됩니다. 호출 시 모든 영속적 내용이 남김없이 삭제됩니다. 스토리지는 즉시 다시 생성되지 않고, ara::per::OpenKeyValueStorage([SWS_PER_00052]) 또는 ara::per::OpenFileStorage([SWS_PER_00116])의 다음 호출 시에 비로소 다시 생성됩니다. 재설정 후 새로 제공되는 파일은 생성 상태 FileCreationState::kCreatedDuringInstallation([SWS_PER_00435])을(를) 받습니다.
오류 처리
이 함수는 반환값으로 ara::core::Result<void>([SWS_PER_00358])을(를) 제공합니다. 작업 중에 물리적 저장 매체에 대한 접근이 실패하면, 함수는 롤백 시맨틱 없이 kPhysicalStorageFailure을(를) 반환합니다. 영속적 리소스가 점유 중이거나 병렬로 수정되는 경우, 호출은 활성 롤백 시맨틱과 함께 kResourceBusy(으)로 중단됩니다([SWS_PER_00358]). 이 외에도 공급업체별 오류가 발생할 수 있습니다.
동시성 및 제약사항
이 인터페이스는 exception safe(으)로 선언되어 있지만, 명시적으로 not thread-safe(으)로 분류되어 있습니다([SWS_PER_00358]). 다음의 경우 즉시 kResourceBusy(으)로 실패합니다:
단일 스토리지가 RecoverKeyValueStorage, ResetKeyValueStorage, RecoverAllFiles([SWS_PER_00335]) 또는 ResetAllFiles([SWS_PER_00336])을(를) 통해 병렬로 처리되고 있는 경우,
또는 Key-Value 스토리지나 File 스토리지의 활성 SharedHandle이(가) 아직 하나 이상 존재하는 경우([SWS_PER_00358]).
ResetPersistency이(가) 실행되는 동안 다른 스레드에서 OpenKeyValueStorage([SWS_PER_00052]) 또는 OpenFileStorage([SWS_PER_00116])을(를) 통한 동시 열기 시도 또한 kResourceBusy을(를) 초래합니다.
Updates all Persistency Key-Value Storages and File Storages after a new Target Configuration was installed. This method can be used to update the persistent data of the Adaptive Application during verification phase.
AI 생성미검증모델: gemini-3.8-flash-medium · 노력: medium · 온도: 제어 불가 · 프롬프트: a05074f12eed출처
독일어 가이드에서 번역됨gemini-3.8-flash-low · 2026-10-13 · 독일어 원문
사용
동기 함수 ara::per::UpdatePersistency([SWS_PER_00357], 헤더 ara/per/update.h)은 새 대상 구성을 설치한 후 애플리케이션의 모든 키-값 및 파일 스토리지를 업데이트합니다. 이 함수는 검증 단계 동안 Adaptive Application의 영속 데이터를 업데이트하는 데 사용됩니다 [SWS_PER_00357]. 함수는 전달 매개변수를 받지 않으며 ara::core::Result<void>를 반환합니다 [SWS_PER_00357].
오류 처리
오류 발생 시 반환된 Result에는 특정 오류 코드 또는 제조업체별 오류가 포함됩니다 [SWS_PER_00357]. 이때 롤백 시맨틱이 있는 작업과 없는 작업으로 구분됩니다.
롤백 시맨틱:kIntegrityCorrupted, kValidationFailed, kEncryptionFailed, kAuthenticationFailed, kTooManyFiles(maxNumberOfFiles 초과), kQuotaExceeded(MaximumAllowedSize 초과) 및 kResourceBusy의 경우 적용된 변경사항이 취소됩니다 [SWS_PER_00357].
롤백 시맨틱 없음: 물리적 스토리지 오류(kPhysicalStorageFailure) 및 물리적 스토리지 공간 부족(kOutOfStorageSpace)의 경우 롤백이 보장되지 않습니다 [SWS_PER_00357].
실행 중인 상태에서 UCM에 의해 새 대상 구성이 설치되고 이것이 ReloadPersistencyManifest[SWS_PER_00577]을 통해 다시 읽혀지면 닫힌 스토리지가 UpdatePersistency를 통해 업데이트됩니다. 이전에 RegisterDataUpdateIndication[SWS_PER_00578] 또는 RegisterApplicationDataUpdateCallback[SWS_PER_00356]을 통해 콜백이 등록된 경우 UpdatePersistency[SWS_PER_00578]의 컨텍스트에서 동기식으로 호출됩니다.
no_rollback_semantics Returned if the available physical storage space is insufficient for the update.
kTooManyFiles
rollback_semantics Returned if the files added during the update of any File Storage would exceed the configured PersistencyFileStorageInterface.maxNumberOfFiles.
kQuotaExceeded
rollback_semantics Returned if the update would exceed the configured PersistencyCommon.MaximumAllowedSize of any Key- Value Storage or File Storage.
kAuthentication-Failed
rollback_semantics Returned if calculating or checking the MAC of stored data fails.
Request a governed re-review of this record. The record is not changed immediately.
gemini-3.8-flash-low· 2026-10-13 · 독일어 원문