访问文件存储和键值存储的api是完全分离的,因此被划分为单独的部分。其他部分描述了常见的功能
持久化规范中所有指定的类都应该驻留在c++命名空间ara::per中
持久化的API是围绕着ara::per::SharedHandle和ara::per::UniqueHandle设计的,它们由工厂函数返回,
如ara::per::OpenKeyValueStorage或ara::per::FileStorage::OpenFileReadWrite。
自适应应用程序不能直接构造本章中定义的类,因此默认构造函数被认为是不可公开访问的(即被删除、私有或保护)。
头文件:#include "ara/per/key_value_storage.h"
下面列举出操作键值存储所需要的函数及类;罗列出的函数用于访问Key-Value Storage,在它损坏后会尽可能的进行恢复,并将其重置为已设置的默认值,
从而获取分配给Key-Value Storage的存储量
5.1.1 OpenKeyValueStorage函数
函数原型 | ara::core::Result<SharedHandle<KeyValueStorage>> OpenKeyValueStorage(const ara::core::InstanceSpecifier &kvs) noexcept; |
描述 | 创建KeyValueStorage类实例,打开一个键值存储 |
参数 | kvs,由PersistencyKeyValueStorageInterface类型的PortPrototype的短名称路径 |
返回值 | 若调用成功,则返回SharedHandle<KeyValueStorage> 类型的实例 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 如果UpdatePersistency或ResetPersistency正在执行, 或者RecoverKeyValueStorage或ResetKeyValueStorage正在执行同一个Key-Value Storage | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.1.2 RecoverKeyValueStorage函数
函数原型 | ara::core::Result<void> RecoverKeyValueStorage (const ara::core::InstanceSpecifier &kvs) noexcept; |
描述 | 恢复一个键值存储;允许在冗余检查失败时恢复键值存储 |
参数 | kvs,由PersistencyKeyValueStorageInterface类型的PortPrototype的短名称路径 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 如果UpdatePersistency或ResetPersistency正在执行,或者RecoverKeyValueStorage或ResetKeyValueStorage正在执行同一个Key-Value Storage | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.1.3 ResetKeyValueStorage函数
函数原型 | ara::core::Result<void> ResetKeyValueStorage (const ara::core::InstanceSpecifier &kvs) noexcept |
描述 | 将键值存储重置为初始状态 |
参数 | kvs,由PersistencyKeyValueStorageInterface类型的PortPrototype的短名称路径 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 如果UpdatePersistency或ResetPersistency正在执行,或者RecoverKeyValueStorage或ResetKeyValueStorage正在执行同一个Key-Value Storage | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.1.4 GetCurrentKeyValueStorageSize函数
函数原型 | ara::core::Result<uint64_t> GetCurrentKeyValueStorageSize (const ara::core::InstanceSpecifier &kvs) const noexcept |
描述 | 返回键值存储当前占用的字节数 |
参数 | kvs,由PersistencyKeyValueStorageInterface类型的PortPrototype的短名称路径 |
返回值 | uint64_t类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.1.5 KeyValueStorage类
头文件: #include "ara/per/key_value_storage.h"
5.1.5.1 KeyValueStorage::KeyValueStorage函数
构造函数 | KeyValueStorage (KeyValueStorage &&kvs) noexcept |
不能使用KeyValueStorage的复制拷贝构造函数 | KeyValueStorage (const KeyValueStorage &)=delete; |
5.1.5.2 KeyValueStorage::operator=
KeyValueStorage& operator= (KeyValueStorage &&kvs) &noexcept; 复制赋值操作符
KeyValueStorage& operator= (const KeyValueStorage &)=delete; 不能使用KeyValueStorage的复制赋值操作符。
5.1.5.3 KeyValueStorage::~KeyValueStorage函数
~KeyValueStorage () noexcept; 析构函数
5.1.5.4 KeyValueStorage::GetAllKeys函数
函数原型 | ara::core::Result<ara::core::Vector<ara::core::String> > GetAllKeys () const noexcept |
描述 | 获取键值存储内存中所有可用建的列表 |
参数 | 无 |
返回值 | ara::core::Vector<ara::core::String>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.5 KeyValueStorage::KeyExists函数
函数原型 | ara::core::Result<bool> KeyExists (ara::core::StringView key) const noexcept; |
描述 | 检查key键值在键值存储中是否存在 |
参数 | 需检查的key键值 |
返回值 | bool类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.6 KeyValueStorage::GetValue函数
函数原型 | ara::core::Result<T> GetValue (ara::core::StringView key) const noexcept;【template <class T>】 |
描述 | 在键值存储内存中,通过键值key获取value值 |
参数 | 键值key |
返回值 | 检索值的结果 |
若失败返回如下: | |
PerErrc::kKeyNotFound: 提供的键在键值存储中不存在 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kDataTypeMismatch: 存储值的数据类型与模板类型不匹配 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.7 KeyValueStorage::SetValue函数
函数原型 | ara::core::Result<void> SetValue (ara::core::StringView key, const T &value) noexcept |
描述 | 指定键值key并设置value值 |
参数 | 键值key;设置的value值 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 键值存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kDataTypeMismatch: 存储值的数据类型与模板类型不匹配 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.8 KeyValueStorage::RemoveKey函数
函数原型 | ara::core::Result<void> RemoveKey (ara::core::StringView key) noexcept; |
描述 | 根据提供的键值key移除键值key以及相关联的value值 |
参数 | 键值key |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kKeyNotFound: 提供的键在键值存储中不存在 | |
PerErrc::kIllegalWriteAccess: 键值存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.9 KeyValueStorage::RecoverKey函数
函数原型 | ara::core::Result<void> RecoverKey (ara::core::StringView key) noexcept |
描述 | 根据所提供的键值key恢复这个键值存储 |
参数 | 键值key |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kKeyNotFound: 提供的键在键值存储中不存在 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 在initialize之前或Deinitialize之后进行调用 |
5.1.5.10 KeyValueStorage::ResetKey函数
函数原型 | ara::core::Result<void> ResetKey(ara::core::StringView key) noexcept |
描述 | 将键值存储中的某个键值重置为初始值 |
参数 | 键值key |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 键值存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 在initialize之前或Deinitialize之后进行调用 | |
PerErrc::kInitValueNotAvailable: 没有为该键值配置初始值 |
5.1.5.11 KeyValueStorage::RemoveAllKeys函数
函数原型 | ara::core::Result<void> RemoveAllKeys () noexcept |
描述 | 从这个键值存储中移除所有键值及相关联值 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 键值存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.1.5.12 KeyValueStorage::SyncToStorage函数
函数原型 | ara::core::Result<void> SyncToStorage() noexcept |
描述 | 将更改的键值存储的键值对同步到物理存储 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 键值存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 在initialize之前或Deinitialize之后进行调用 |
5.1.5.13 KeyValueStorage::DiscardPendingChanges函数
函数原型 | ara::core::Result<void> DiscardPendingChanges() noexcept |
描述 | 移除自上次调用SyncToStorage()或使用OpenKeyValueStorage()打开该Key-Value Storage以来对该Key-Value Storage的所有挂起的更改 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 在initialize之前或Deinitialize之后进行调用 |
头文件:#include "ara/per/file_storage.h"
下面列出操作文件存储所需的所有函数和类
以下函数用于访问文件存储、在文件存储损坏后尽可能恢复、将其重置为已部署的默认值以及获取分配给文件存储的存储量。此外,存在操作符来组合作为模式传递给OpenFile *函数的ara::per::OpenMode值。
当以文本模式访问文件时,持久性本身不会改变或解释文件的内容
5.2.1 OpenFileStorage函数
函数原型 | ara::core::Result<SharedHandle<FileStorage> > OpenFileStorage (const |
描述 | 创建FileStorage类实例,打开一个文件存储 |
参数 | fs,由PersistencyFileStorageInterface类型的PortPrototype的短名称路径 |
返回值 | 返回SharedHandle<FileStorage> 类型的实例 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 若UpdatePersistency或ResetPersistency正在执行,或ResetAllFiles正在为相同的文件存储执行,或相同的文件存储SharedHandle正在使用 | |
PerErrc::kOutOfStorageSpac: 可用存储空间不足 | |
PerErrc::kNotInitialized: 若在initialize之前或Deinitialize之后进行调用 |
5.2.2 RecoverAllFiles函数
函数原型 | ara::core::Result<void> RecoverAllFiles (const ara::core::Instance Specifier &fs) noexcept |
描述 | 恢复所有文件存储 |
参数 | fs,由PersistencyFileStorageInterface类型的PortPrototype的短名称路径 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 若UpdatePersistency或ResetPersistency正在执行,或者ResetAllFiles正在为相同的文件存储执行,或者相同的文件存储的SharedHandle正在使用 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.2.3 ResetAllFiles函数
函数原型 | ara::core::Result<void> ResetAllFiles (const ara::core::Instance |
描述 | 重置文件存储,包括所有文件 |
参数 | fs,由PersistencyFileStorageInterface类型的PortPrototype的短名称路径 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 若UpdatePersistency或ResetPersistency正在执行,或者 ResetAllFiles正在为相同的文件存储执行,或相同的文件存储的SharedHandle正在使用 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足以容纳添的更新值 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.2.4 GetCurrentFileStorageSize函数
函数原型 | ara::core::Result<uint64_t> GetCurrentFileStorageSize (const |
描述 | 返回文件存储当前所占用的字节数 |
参数 | fs,由PersistencyFileStorageInterface类型的PortPrototype的短名称路径 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kStorageNotFound: 传入的参数不匹配时 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.2.5 OpenMode枚举
格式 | enum class OpenMode : uint32_t {...}; |
描述 | 此枚举定义如何打开文件 |
枚举成员 | enum class OpenMode : uint32_t { |
5.2.6 operator| for FileStorage::OpenMode
格式: constexpr OpenMode operator| (OpenMode left, OpenMode right);
描述: 将两个OpenMode修饰符合并为一个
参数:两个OpenMode类型的枚举
返回值: OpenMode类型
5.2.7 operator|= for FileStorage::OpenMode
格式: OpenMode& operator|= (OpenMode &left, const OpenMode &right);
描述: 将OpenMode修饰符合并到此OpenMode中
参数:两个OpenMode类型的枚举
返回值: OpenMode &类型
5.2.8 FileCreationState枚举
格式 | enum class FileCreationState : uint32_t {...}; |
描述 | 此枚举描述如何以及何时创建文件 |
枚举成员 | enum class FileCreationState : uint32_t { |
5.2.9 FileModificationState枚举
格式 | enum class FileModificationState : uint32_t {...}; |
描述 | 此枚举描述文件最后一次修改的方式和时间 |
枚举成员 | enum class FileModificationState : uint32_t { |
5.2.10 FileInfo结构体
格式 | struct FileInfo {...}; |
描述 | 该结构包含由GetFileInfo返回的文件的附加信息 |
结构体成员 | struct FileInfo { |
5.2.11 FileStorage类
5.2.11.1 FileStorage::GetAllFileNames函数
函数原型 | ara::core::Result<ara::core::Vector<ara::core::String> > GetAllFileNames () const noexcept |
描述 | 获取此文件存储的所有当前可用文件的列表 |
参数 | 无 |
返回值 | ara::core::Vector<ara::core::String>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若函数在Deinitialize之后进行调用 |
5.2.11.2 FileStorage::DeleteFile函数
函数原型 | ara::core::Result<void> DeleteFile(ara::core::StringView fileName) noexcept |
描述 | 从此文件存储区删除文件 |
参数 | fileName文件名 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 如果文件是打开的,或者如果具有相同文件名的RecoverFile 或ResetFile正在执行 | |
PerErrc::kFileNotFound: 提供的文件在文件存储中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.3 FileStorage::FileExists函数
函数原型 | ara::core::Result<bool> FileExists (ara::core::StringView fileName) const noexcept |
描述 | 检查文件在文件存储区是否存在 |
参数 | fileName文件名 |
返回值 | bool类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.4 FileStorage::RecoverFile函数
函数原型 | ara::core::Result<void> RecoverFile (ara::core::StringView fileName) noexcept |
描述 | 恢复此文件存储的文件 |
参数 | fileName文件名 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 如果文件是打开的,或者如果具有相同文件名的RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 | |
PerErrc::kFileNotFound: 提供的文件在文件存储中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.5 FileStorage::ResetFile函数
函数原型 | ara::core::Result<void> ResetFile (ara::core::StringView fileName) noexcept |
描述 | 将文件存储的文件内容重置为初始内容 |
参数 | fileName文件名 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kInitValueNotAvailable: 没有为该文件配置初始值 | |
PerErrc::kResourceBusy: 如果文件是打开的,或者如果具有相同文件名的RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.6 FileStorage::GetCurrentFileSize函数
函数原型 | ara::core::Result<uint64_t> GetCurrentFileSize (ara::core::StringView fileName) const noexcept |
描述 | 返回此文件存储的文件内容当前所占的空间大小 |
参数 | fileName文件名 |
返回值 | uint64_t类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kFileNotFound: 提供的文件在文件存储中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.7 FileStorage::GetFileInfo函数
函数原型 | ara::core::Result<FileInfo> GetFileInfo (ara::core::StringView fileName) const noexcept |
描述 | 获取此文件存储的文件内容信息 |
参数 | fileName文件名 |
返回值 | FileInfo类型结构体 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kFileNotFound: 提供的文件在文件存储中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 |
5.2.11.8 FileStorage::OpenFileReadWrite函数
函数原型 | (1)ara::core::Result<UniqueHandle<ReadWriteAccessor>> OpenFileReadWrite(ara::core::StringView fileName) noexcept |
描述 | 打开文件存储的文件进行读写 |
参数 | fileName文件名 |
返回值 | UniqueHandle<ReadWriteAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
函数原型 | (2) ara::core::Result<UniqueHandle<ReadWriteAccessor>> OpenFileReadWrite(ara::core::StringView fileName, OpenMode mode) noexcept |
描述 | 以定义的模式打开此文件存储的文件进行读写 |
参数 | 文件名称及定义的模式 |
返回值 | UniqueHandle<ReadWriteAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 | |
函数原型 | (3) ara::core::Result<UniqueHandle<ReadWriteAccessor>> OpenFileReadWrite(ara::core::StringView fileName, OpenMode mode, |
描述 | 使用用户提供的缓冲区打开此文件存储的文件进行读写 |
参数 | 文件名称、打开文件模式以及buffer缓存区 |
返回值 | UniqueHandle<ReadWriteAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 |
5.2.11.9 FileStorage::OpenFileReadOnly函数
函数原型 | (1) ara::core::Result<UniqueHandle<ReadAccessor> > OpenFileReadOnly(ara::core::StringView fileName) noexcept |
描述 | 打开文件存储的文件进行读取 |
参数 | 文件名称 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kFileNotFound: 提供的文件在文件存储区中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
函数原型 | (2) ara::core::Result<UniqueHandle<ReadAccessor>> OpenFileReadOnly(ara::core::StringView fileName, OpenMode mode) noexcept |
描述 | 以定义的模式打开文件存储的文件进行读取 |
参数 | 文件名称及打开文件模式 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kFileNotFound: 提供的文件在文件存储区中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 | |
函数原型 | (3) ara::core::Result<UniqueHandle<ReadAccessor>> OpenFileReadOnly(ara::core::StringView fileName, OpenMode mode, |
描述 | 使用用户提供的缓冲区打开此文件存储的文件进行读取 |
参数 | 文件名称、打开文件模式及buffer缓冲区 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kFileNotFound: 提供的文件在文件存储区中不存在 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 |
5.2.11.10 FileStorage::OpenFileWriteOnly函数
函数原型 | (1) ara::core::Result<UniqueHandle<ReadWriteAccessor> > OpenFileWriteOnly(ara::core::StringView fileName) noexcept |
描述 | 打开此文件存储的文件进行写入 |
参数 | 文件名称 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或 ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
函数原型 | (2) ara::core::Result<UniqueHandle<ReadWriteAccessor>> OpenFileWriteOnly(ara::core::StringView fileName, OpenMode mode) noexcept |
描述 | 以定义的模式打开此文件存储的文件进行写入 |
参数 | 文件名称及打开文件模式 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 | |
函数原型 | (3) ara::core::Result<UniqueHandle<ReadWriteAccessor>> |
描述 | 使用用户提供的缓冲区打开此文件存储的文件进行写入 |
参数 | 文件名称、打开文件模式及buffer缓冲区 |
返回值 | UniqueHandle<ReadAccessor>类型 |
若失败返回如下: | |
PerErrc::kIllegalWriteAccess: 文件存储配置为只读模式 | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kResourceBusy: 文件已经打开,或者如果同名的DeleteFile、RecoverFile或ResetFile正在执行 | |
PerErrc::kOutOfStorageSpace: 当创建文件时,如果可用存储空间不足或文件数量将大于配置的maxNumberOfFiles | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidOpenMode: 传递的模式包含无效的模式组合 |
5.2.12 Origin枚举
头文件: #include "ara/per/read_accessor.h"
格式: enum class Origin : uint32_t {...};
枚举成员如下:
enum class Origin : uint32_t {
kBeginning= 0, //从文件头开始查找
kCurrent= 1, //从当前位置进行查找
kEnd= 2 //从文件末尾进行查找
};
5.2.13 ReadAccessor类
描述: ReadAccessor用于读取文件数据
5.2.13.1 ReadAccessor::PeekChar函数
函数原型 | ara::core::Result<char> PeekChar () const noexcept |
描述 | 返回文件当前位置的字符 |
参数 | 无 |
返回值 | char类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.2 ReadAccessor::PeekByte函数
函数原型 | ara::core::Result<ara::core::Byte> PeekByte () const noexcept |
描述 | 返回文件位于当前位置的字节 |
参数 | 无 |
返回值 | ara::core::Byte类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.3 ReadAccessor::GetChar函数
函数原型 | ara::core::Result<char> GetChar () noexcept |
描述 | 返回文件当前位置的字符,使当前位置向前移动 |
参数 | 无 |
返回值 | char类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.4 ReadAccessor::GetByte函数
函数原型 | ara::core::Result<ara::core::Byte> GetByte () noexcept |
描述 | 返回文件当前位置的字节,使当前位置向前移动 |
参数 | 无 |
返回值 | ara::core::Byte类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.5 ReadAccessor::ReadText函数
函数原型 | ara::core::Result<ara::core::String> ReadText () noexcept |
描述 | 从当前位置开始,将剩余所有字符读入string中 |
参数 | 无 |
返回值 | ara::core::String类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.6 ReadAccessor::ReadBinary函数
函数原型 | ara::core::Result<ara::core::Vector<ara::core::Byte>> ReadBinary () noexcept |
描述 | 从当前位置开始,将剩余所有字节读入Binary中 |
参数 | 无 |
返回值 | ara::core::Vector<ara::core::Byte>类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.7 ReadAccessor::ReadLine函数
函数原型 | ara::core::Result<ara::core::String> ReadLine (char delimiter=’\n’) noexcept |
描述 | 将一行完整的字符读入字符串中,并相应推进当前位置 |
参数 | delimiter分隔符 |
返回值 | ara::core::String类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kIsEof: 当前位置在文件末尾或文件为空 |
5.2.13.8 ReadAccessor::GetSize函数
函数原型 | uint64_t GetSize () const noexcept |
描述 | 返回当前文件的大小 |
参数 | 无 |
返回值 | uint64_t类型 |
5.2.13.9 ReadAccessor::GetPosition函数
函数原型 | uint64_t GetPosition () const noexcept |
描述 | 返回相对于文件开头的当前位置 |
参数 | 无 |
返回值 | uint64_t类型 |
5.2.13.10 ReadAccessor::SetPosition函数
函数原型 | ara::core::Result<void> SetPosition (uint64_t position) noexcept |
描述 | 设置相对于文件开头的当前位置 |
参数 | 文件中的当前位置position |
返回值 | void类型 |
如失败返回如下: | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidPosition: 给定位置超出文件末尾 |
5.2.13.11 ReadAccessor::MovePosition函数
函数原型 | ara::core::Result<uint64_t> MovePosition (Origin origin, int64_t offset) noexcept |
描述 | 移动文件中相对起始点的当前位置 |
参数 | 移动偏移字节的起始点以及偏移量 |
返回值 | uint64_t类型 |
如失败返回如下: | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidPosition: 结果位置小于零或超过文件末尾 |
5.2.13.12 ReadAccessor::IsEof函数
函数原型 | bool IsEof () const noexcept |
描述 | 检查当前位置是否在文件末尾 |
参数 | 无 |
返回值 | bool类型 |
5.2.14 ReadWriteAccessor类
头文件: #include "ara/per/read_write_accessor.h"
描述: ReadWriteAccessor类继承ReadAccessor类,用于读写文件数据
5.2.14.1 ReadWriteAccessor::SetFileSize函数
函数原型 | ara::core::Result<void> SetFileSize (uint64_t size) noexcept |
描述 | 将文件的大小减小到原来的大小,有效地删除超过这个大小的文件的当前内容 |
参数 | 设置文件的大小size |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kInvalidSize: 设置文件的大小大于当前文件的大小 |
5.2.14.2 ReadWriteAccessor::SyncToFile函数
函数原型 | ara::core::Result<void> SyncToFile () noexcept |
描述 | 将当前文件内容同步到物理存储 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 |
5.2.14.3 ReadWriteAccessor::WriteText函数
函数原型 | ara::core::Result<void> WriteText (ara::core::StringView s) noexcept |
描述 | 将stringView的内容写入文件中 |
参数 | 要写入的字符StringView |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 |
5.2.14.4 ReadWriteAccessor::WriteBinary函数
函数原型 | ara::core::Result<void> WriteBinary (ara::core::Span<const ara::core::Byte> b) noexcept |
描述 | 将Span中的字节内容写入到文件中 |
参数 | 要写入的字节的一段字节 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kEncryptionFailed: 存储的数据解密失败 | |
PerErrc::kNotInitialized: 若在ara::core::Deinitialize之后调用此方法 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 |
5.2.14.5 ReadWriteAccessor::operator<<
函数原型 | ReadWriteAccessor& operator<< (ara::core::StringView s) noexcept; |
描述 | 将StringView的内容写入文件 |
参数 | 要写入的字符StringView |
返回值 | 无 |
头文件: #include "ara/per/update.h"
概述: 持久化集群允许更新、重置或删除所有已经安装的键值存储和文件存储。应用程序还可以注册一个回调函数,该函数在任何键值存储和文件存储更新后被调用
5.3.1 RegisterApplicationDataUpdateCallback函数
函数原型: void RegisterApplicationDataUpdateCallback(std::function<void(const
ara::core::InstanceSpecifier &storage,
ara::core::String version)> appDataUpdateCallback) noexcept
描述: 注册应用程序数据更新后进行回调
5.3.2 UpdatePersistency函数
函数原型 | ara::core::Result<void> UpdatePersistency () noexcept |
描述 | 在安装新的 manifest后,更新所有的持久化文件存储和键值存储 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kIntegrityCorrupted: 存储的数据由于结构完整性损坏而无法读取 | |
PerErrc::kValidationFailed: 无法确认存储数据的有效性 | |
PerErrc::kEncryptionFailed: 存储数据的加密或解密失败 | |
PerErrc::kResourceBusy: 如果ResetPersistency目前正在执行,或者 RecoverKeyValueStorage或重置KeyValueStorage目前正在执行的任何键值存储,或者如果RecoverAllFiles或ResetAll文件目前正在执行任何文件存储,或键值存储或文件存储的SharedHandle目前正在使用 | |
PerErrc::kOutOfStorageSpace: 可用存储空间不足 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
5.3.3 ResetPersistency函数
函数原型 | ara::core::Result<void> ResetPersistency () noexcept |
描述 | 重置所有文件存储和键值存储,完全删除它们的内容 |
参数 | 无 |
返回值 | void类型 |
若失败返回如下: | |
PerErrc::kPhysicalStorageFailure: 访问存储失败 | |
PerErrc::kResourceBusy: 如果ResetPersistency目前正在执行,或者 RecoverKeyValueStorage或重置KeyValueStorage目前正在执行的任何键值存储,或者如果RecoverAllFiles或ResetAll文件目前正在执行任何文件存储,或键值存储或文件存储的 SharedHandle目前正在使用 | |
PerErrc::kNotInitialized: 若函数在initialize之前或Deinitialize之后进行调用 |
头文件: #include "ara/per/recovery.h"
描述:
5.4.1 RecoveryReportKind枚举
格式 | enum class RecoveryReportKind : uint32_t {...}; |
描述 | 定义报告的恢复操作 |
枚举成员 | enum class RecoveryReportKind : uint32_t { |
5.4.2 RegisterRecoveryReportCallback函数
函数原型: void RegisterRecoveryReportCallback(std::function< void(const
ara::core::InstanceSpecifier &storage, ara::per::recoveryReportKind
recoveryReportKind, ara::core::Vector< ara::core::String > reported
Elements, ara::core::Vector< uint8 > reportedInstances)> recovery
ReportCallback) noexcept
描述: 注册一个持久化的恢复报告回调。此回调可用于安全感知应用程序中,以检测与持久化数据的正确性和存储的可靠性相关的持久化操作
概述:本节描述持久化集群的API中使用的句柄类的定义。SharedHandle用于提供共享访问一个KeyValueStorage或者FileStorage;UniqueHandle用于提供非共享访问ReadAccessor或者ReadWriteAccessor文件存储。
5.5.1 SharedHandle类
5.5.2 UniqueHandle类
头文件: #include "ara/per/per_error_domain.h"
概述: 持久化集群基于ara::core::Result进行错误处理;持久性集群支持的报错信息见5.6.1
5.6.1 PerErrc枚举
格式 | enum class PerErrc : ara::core::ErrorDomain::CodeType {...}; |
描述 | 持久化报错定义 |
枚举成员 | enum class PerErrc : ara::core::ErrorDomain::CodeType { |
5.6.2 GetPerDomain函数
函数原型 | constexpr const ara::core::ErrorDomain& GetPerDomain () noexcept |
描述 | 返回全局PerErrorDomain对象 |
参数 | 无 |
返回值 | ara::core::ErrorDomain &类型的对象 |
5.6.3 MakeErrorCode函数
函数原型 | constexpr ara::core::ErrorCode MakeErrorCode (PerErrc code, ara::core::ErrorDomain::SupportDataType data) noexcept; |
描述 | 创建错误代码 |
参数 | PerErrc类型的枚举及与错误相关的数据 |
返回值 | ErrorCode对象 |
5.6.4 PerException类
构造函数 | explicit PerException (ara::core::ErrorCode errorCode) noexcept |
描述 | 构造一个包含错误代码的新持久化异常对象 |
参数 | ara::core::ErrorCode类型的错误码 |
5.6.5 PerErrorDomain类
概述: 继承ErrorDomain类,错误处理需要一个ara::core::ErrorDomain,它可以用来检查通过ara::core::Result返回的错误
定义持久性的错误域。
5.6.5.1 PerErrorDomain::Errc
using Errc = PerErrc; //误码值枚举的别名
5.6.5.2 PerErrorDomain::Exception
using Exception = PerException; //异常基类的别名
5.6.5.3 PerErrorDomain::PerErrorDomain函数
构造函数 | PerErrorDomain () noexcept |
描述 | 创建一个PerErrorDomain实例 |
参数 | 无 |
返回值 | 返回一个PerErrorDomain类型实例 |
5.6.5.4 PerErrorDomain::Name函数
函数原型 | const char * Name () const noexcept override; |
描述 | 返回错误域的名称 |
参数 | 无 |
返回值 | char *类型 |
5.6.5.5 PerErrorDomain::Message函数
函数原型 | const char * Message (CodeType errorCode) const noexcept override |
描述 | 返回与错误相关联的信息 |
参数 | CodeType类型的错误码 |
返回值 | char *类型 |
5.6.5.6 PerErrorDomain::ThrowAsException函数
函数原型 | void ThrowAsException (const ara::core::ErrorCode &errorCode) const override; |
描述 | 抛出与错误码相关联的异常 |
参数 | 以引用的传入的错误码信息 |
返回值 | 无 |
持久化集群不通过ara::com提供任何服务接口。