#ifndef SHAREDDATALAYER_REDIS_ASYNCSTORAGEIMPL_HPP_
#define SHAREDDATALAYER_REDIS_ASYNCSTORAGEIMPL_HPP_
+#include <functional>
#include <sdl/asyncstorage.hpp>
#include <sdl/publisherid.hpp>
#include "private/configurationreader.hpp"
#include "private/databaseconfigurationimpl.hpp"
#include "private/logger.hpp"
#include "private/namespaceconfigurationsimpl.hpp"
+#include "private/redis/asyncdatabasediscovery.hpp"
namespace shareddatalayer
{
class AsyncStorageImpl: public AsyncStorage
{
public:
+ using AsyncDatabaseDiscoveryCreator = std::function<std::shared_ptr<redis::AsyncDatabaseDiscovery>(std::shared_ptr<Engine> engine,
+ const DatabaseConfiguration& databaseConfiguration,
+ std::shared_ptr<Logger> logger)>;
+
AsyncStorageImpl(const AsyncStorageImpl&) = delete;
AsyncStorageImpl& operator = (const AsyncStorageImpl&) = delete;
const boost::optional<PublisherId>& pId,
std::shared_ptr<DatabaseConfiguration> databaseConfiguration,
std::shared_ptr<NamespaceConfigurations> namespaceConfigurations,
- std::shared_ptr<Logger> logger);
+ std::shared_ptr<Logger> logger,
+ const AsyncDatabaseDiscoveryCreator& asyncDatabaseDiscoveryCreator);
int fd() const override;
std::shared_ptr<NamespaceConfigurations> namespaceConfigurations;
const boost::optional<PublisherId> publisherId;
std::shared_ptr<Logger> logger;
+ AsyncDatabaseDiscoveryCreator asyncDatabaseDiscoveryCreator;
AsyncStorage& getRedisHandler();
AsyncStorage& getDummyHandler();