X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=include%2Fprivate%2Fredis%2Fasyncsentineldatabasediscovery.hpp;h=c471a376bb7296522495fcdb89ca7173003edd8b;hb=refs%2Fchanges%2F30%2F1830%2F1;hp=527fa4ed41dd18b4690eeb7df5e3f98cc910020f;hpb=8324d029ce006509ddbc605446d05987c17e0368;p=ric-plt%2Fsdl.git diff --git a/include/private/redis/asyncsentineldatabasediscovery.hpp b/include/private/redis/asyncsentineldatabasediscovery.hpp index 527fa4e..c471a37 100644 --- a/include/private/redis/asyncsentineldatabasediscovery.hpp +++ b/include/private/redis/asyncsentineldatabasediscovery.hpp @@ -14,6 +14,11 @@ limitations under the License. */ +/* + * This source code is part of the near-RT RIC (RAN Intelligent Controller) + * platform project (RICP). +*/ + #ifndef SHAREDDATALAYER_REDIS_ASYNCSENTINELDATABASEDISCOVERY_HPP_ #define SHAREDDATALAYER_REDIS_ASYNCSENTINELDATABASEDISCOVERY_HPP_ @@ -44,21 +49,26 @@ namespace shareddatalayer using AsyncCommandDispatcherCreator = std::function(Engine& engine, const redis::DatabaseInfo& databaseInfo, std::shared_ptr contentsBuilder, - std::shared_ptr logger)>; + std::shared_ptr logger, + bool usePermanentCommandCallbacks)>; AsyncSentinelDatabaseDiscovery(const AsyncSentinelDatabaseDiscovery&) = delete; AsyncSentinelDatabaseDiscovery& operator = (const AsyncSentinelDatabaseDiscovery&) = delete; AsyncSentinelDatabaseDiscovery(std::shared_ptr engine, - std::shared_ptr logger); + std::shared_ptr logger, + const HostAndPort& sentinelAddress, + const std::string& sentinelMasterName); AsyncSentinelDatabaseDiscovery(std::shared_ptr engine, std::shared_ptr logger, + const HostAndPort& sentinelAddress, + const std::string& sentinelMasterName, const AsyncCommandDispatcherCreator& asyncCommandDispatcherCreator, std::shared_ptr contentsBuilder); - ~AsyncSentinelDatabaseDiscovery() override = default; + ~AsyncSentinelDatabaseDiscovery() override; void setStateChangedCb(const StateChangedCb& stateChangedCb) override; @@ -70,11 +80,19 @@ namespace shareddatalayer std::shared_ptr logger; StateChangedCb stateChangedCb; DatabaseInfo databaseInfo; + std::string sentinelMasterName; + std::shared_ptr subscriber; std::shared_ptr dispatcher; std::shared_ptr contentsBuilder; + Timer subscribeRetryTimer; + Timer::Duration subscribeRetryTimerDuration; Timer masterInquiryRetryTimer; Timer::Duration masterInquiryRetryTimerDuration; + void subscribeNotifications(); + + void subscribeAck(const std::error_code& error, const Reply& reply); + void sendMasterInquiry(); void masterInquiryAck(const std::error_code& error, const Reply& reply);