@@ -29,6 +29,14 @@ namespace cyphal::support::platform::storage
2929 * PRIVATE FREE FUNCTIONS
3030 **************************************************************************************/
3131
32+ [[nodiscard]] static inline std::string toFilename (std::string_view const key)
33+ {
34+ auto const key_hash = std::hash<std::string_view>{}(key);
35+ std::stringstream key_filename;
36+ key_filename << key_hash;
37+ return key_filename.str ();
38+ }
39+
3240[[nodiscard]] static inline Error toError (littlefs::Error const err)
3341{
3442 static std::map<littlefs::Error, Error> const LITTLEFS_TO_STORAGE_ERROR_MAP =
@@ -68,12 +76,8 @@ KeyValueStorage_littlefs::KeyValueStorage_littlefs(littlefs::Filesystem & filesy
6876auto KeyValueStorage_littlefs::get (const std::string_view key, const std::size_t size, void * const data) const
6977 -> std::variant<Error, std::size_t>
7078{
71- auto const key_hash = std::hash<std::string_view>{}(key);
72- std::stringstream key_filename;
73- key_filename << key_hash;
74-
7579 /* Open the file containing the registry value. */
76- auto const rc_open = _filesystem.open (key_filename. str ( ), littlefs::OpenFlag::RDONLY);
80+ auto const rc_open = _filesystem.open (toFilename (key ), littlefs::OpenFlag::RDONLY);
7781 if (const auto * const err = std::get_if<littlefs::Error>(&rc_open))
7882 return toError (*err);
7983
@@ -95,12 +99,8 @@ auto KeyValueStorage_littlefs::get(const std::string_view key, const std::size_t
9599auto KeyValueStorage_littlefs::put (const std::string_view key, const std::size_t size, const void * const data)
96100 -> std::optional<Error>
97101{
98- auto const key_hash = std::hash<std::string_view>{}(key);
99- std::stringstream key_filename;
100- key_filename << key_hash;
101-
102102 /* Open the file containing the registry value. */
103- auto const rc_open = _filesystem.open (key_filename. str ( ), littlefs::OpenFlag::WRONLY | littlefs::OpenFlag::CREAT | littlefs::OpenFlag::TRUNC);
103+ auto const rc_open = _filesystem.open (toFilename (key ), littlefs::OpenFlag::WRONLY | littlefs::OpenFlag::CREAT | littlefs::OpenFlag::TRUNC);
104104 if (const auto * const err = std::get_if<littlefs::Error>(&rc_open))
105105 return toError (*err);
106106
@@ -128,11 +128,7 @@ auto KeyValueStorage_littlefs::put(const std::string_view key, const std::size_t
128128
129129auto KeyValueStorage_littlefs::drop (const std::string_view key) -> std::optional<Error>
130130{
131- auto const key_hash = std::hash<std::string_view>{}(key);
132- std::stringstream key_filename;
133- key_filename << key_hash;
134-
135- if (auto const err = _filesystem.remove (key_filename.str ()); err != littlefs::Error::OK)
131+ if (auto const err = _filesystem.remove (toFilename (key)); err != littlefs::Error::OK)
136132 return toError (err);
137133
138134 return std::nullopt ;
0 commit comments