3 #include "../../data_interfaces/source/ifdv2_synchronizer.hpp"
4 #include "../../data_interfaces/source/ifdv2_synchronizer_factory.hpp"
10 namespace launchdarkly::server_side::data_systems {
33 std::vector<std::unique_ptr<data_interfaces::IFDv2SynchronizerFactory>>
101 enum class State { kAvailable, kBlocked };
103 struct SynchronizerFactoryWithState {
104 std::unique_ptr<data_interfaces::IFDv2SynchronizerFactory> factory;
105 State state = State::kAvailable;
106 bool is_fdv1_fallback =
false;
109 std::vector<SynchronizerFactoryWithState> synchronizers_;
111 int synchronizer_index_ = -1;
113 int current_factory_index_ = -1;
Definition: source_manager.hpp:30
void SwitchToFDv1Fallback()
Definition: source_manager.cpp:49
void ResetSourceIndex()
Definition: source_manager.cpp:45
void BlockCurrentSynchronizer()
Definition: source_manager.cpp:39
bool IsCurrentSynchronizerFDv1Fallback() const
Definition: source_manager.cpp:88
void SwitchBackToFDv2()
Definition: source_manager.cpp:57
std::unique_ptr< data_interfaces::IFDv2Synchronizer > NextSynchronizer()
Definition: source_manager.cpp:22
bool IsPrimeSynchronizer() const
Definition: source_manager.cpp:65
std::size_t AvailableSynchronizerCount() const
Definition: source_manager.cpp:74
std::size_t SynchronizerCount() const
Definition: source_manager.cpp:84