Skip to content

Commit c5b1406

Browse files
committed
Extracting common code for determination of filename.
1 parent 9ebe512 commit c5b1406

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/storage/kv_storage/littlefs/kv_littlefs.cpp

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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
6876
auto 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
9599
auto 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

129129
auto 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

Comments
 (0)