Multiple DBAAS Redis Sentinel groups
[ric-plt/sdl.git] / include / private / asyncstorageimpl.hpp
index d6a90df..5999833 100644 (file)
    limitations under the License.
 */
 
+/*
+ * This source code is part of the near-RT RIC (RAN Intelligent Controller)
+ * platform project (RICP).
+*/
+
 #ifndef SHAREDDATALAYER_REDIS_ASYNCSTORAGEIMPL_HPP_
 #define SHAREDDATALAYER_REDIS_ASYNCSTORAGEIMPL_HPP_
 
@@ -25,6 +30,7 @@
 #include "private/logger.hpp"
 #include "private/namespaceconfigurationsimpl.hpp"
 #include "private/redis/asyncdatabasediscovery.hpp"
+#include "private/redis/asyncredisstorage.hpp"
 
 namespace shareddatalayer
 {
@@ -34,7 +40,9 @@ namespace shareddatalayer
     {
     public:
         using AsyncDatabaseDiscoveryCreator = std::function<std::shared_ptr<redis::AsyncDatabaseDiscovery>(std::shared_ptr<Engine> engine,
+                                                                                                           const std::string& ns,
                                                                                                            const DatabaseConfiguration& databaseConfiguration,
+                                                                                                           const boost::optional<std::size_t>& addressIndex,
                                                                                                            std::shared_ptr<Logger> logger)>;
 
         AsyncStorageImpl(const AsyncStorageImpl&) = delete;
@@ -89,8 +97,13 @@ namespace shareddatalayer
         std::shared_ptr<Logger> logger;
         AsyncDatabaseDiscoveryCreator asyncDatabaseDiscoveryCreator;
 
-        AsyncStorage& getRedisHandler();
+        std::vector<std::shared_ptr<AsyncRedisStorage>> asyncStorages;
+
+        AsyncStorage& getRedisHandler(const std::string& ns);
         AsyncStorage& getDummyHandler();
+
+        void setAsyncRedisStorageHandlers(const std::string& ns);
+        AsyncStorage& getAsyncRedisStorageHandler(const std::string& ns);
     };
 }