X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fredis%2Fasyncredisstorage.cpp;h=6f74020e302fac059d68d96ae6b6ce91879fcc8b;hb=5bdca62d89d430f607310370fe1391bd1d1bd21a;hp=f6bf63d23951b8efc0dbd43db721a63958c49916;hpb=8324d029ce006509ddbc605446d05987c17e0368;p=ric-plt%2Fsdl.git diff --git a/src/redis/asyncredisstorage.cpp b/src/redis/asyncredisstorage.cpp index f6bf63d..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" @@ -507,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; @@ -528,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, @@ -569,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(); +}