X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=src%2Fredis%2Fasyncredisstorage.cpp;h=6f74020e302fac059d68d96ae6b6ce91879fcc8b;hb=HEAD;hp=22d4b2b969335f4955d7aa76178881bebd8283a6;hpb=ef2bf51d04aaf01fa0cabdcaf905b23423067662;p=ric-plt%2Fsdl.git diff --git a/src/redis/asyncredisstorage.cpp b/src/redis/asyncredisstorage.cpp index 22d4b2b..6f74020 100644 --- a/src/redis/asyncredisstorage.cpp +++ b/src/redis/asyncredisstorage.cpp @@ -14,6 +14,11 @@ limitations under the License. */ +/* + * This source code is part of the near-RT RIC (RAN Intelligent Controller) + * platform project (RICP). +*/ + #include "config.h" #include #include "private/error.hpp" @@ -53,7 +58,8 @@ namespace databaseInfo, contentsBuilder, false, - logger); + logger, + false); } class AsyncRedisStorageErrorCategory: public std::error_category @@ -506,9 +512,9 @@ void AsyncRedisStorage::removeAsync(const Namespace& ns, contentsBuilder->build("DEL", ns, keys)); } -void AsyncRedisStorage::findKeysAsync(const Namespace& ns, - const std::string& keyPrefix, - const FindKeysAck& findKeysAck) +void AsyncRedisStorage::findKeys(const Namespace& ns, + const std::string& keyPattern, + const FindKeysAck& findKeysAck) { //TODO: update to more optimal solution than current KEYS-based one. std::error_code ec; @@ -527,7 +533,23 @@ void AsyncRedisStorage::findKeysAsync(const Namespace& ns, findKeysAck(std::error_code(), getKeys(*reply.getArray())); }, ns, - contentsBuilder->build("KEYS", buildKeyPrefixSearchPattern(ns, keyPrefix))); + contentsBuilder->build("KEYS", keyPattern)); +} + +void AsyncRedisStorage::findKeysAsync(const Namespace& ns, + const std::string& keyPrefix, + const FindKeysAck& findKeysAck) +{ + auto keyPattern(buildKeyPrefixSearchPattern(ns, keyPrefix)); + findKeys(ns, keyPattern, findKeysAck); +} + +void AsyncRedisStorage::listKeys(const Namespace& ns, + const std::string& pattern, + const FindKeysAck& findKeysAck) +{ + auto keyPattern(buildNamespaceKeySearchPattern(ns, pattern)); + findKeys(ns, keyPattern, findKeysAck); } void AsyncRedisStorage::removeAllAsync(const Namespace& ns, @@ -568,3 +590,11 @@ std::string AsyncRedisStorage::buildKeyPrefixSearchPattern(const Namespace& ns, oss << '{' << ns << '}' << SEPARATOR << escapedKeyPrefix << "*"; return oss.str(); } + +std::string AsyncRedisStorage::buildNamespaceKeySearchPattern(const Namespace& ns, + const std::string& pattern) const +{ + std::ostringstream oss; + oss << '{' << ns << '}' << SEPARATOR << pattern; + return oss.str(); +}