C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
background_sync_system.hpp
1#pragma once
2
3#include "../../data_components/change_notifier/change_notifier.hpp"
4#include "../../data_components/memory_store/memory_store.hpp"
5#include "../../data_components/status_notifications/data_source_status_manager.hpp"
6#include "../../data_interfaces/source/idata_synchronizer.hpp"
7#include "../../data_interfaces/system/idata_system.hpp"
8
9#include <launchdarkly/data_model/descriptors.hpp>
10#include <launchdarkly/logging/logger.hpp>
11#include <launchdarkly/server_side/config/built/all_built.hpp>
12
13#include <boost/asio/any_io_executor.hpp>
14
15namespace launchdarkly::server_side::data_systems {
16
28 public:
30 config::built::ServiceEndpoints const& endpoints,
31 config::built::BackgroundSyncConfig const& background_sync_config,
32 config::built::HttpProperties http_properties,
33 boost::asio::any_io_executor ioc,
35 Logger const& logger);
36
37 BackgroundSync(BackgroundSync const& item) = delete;
38 BackgroundSync(BackgroundSync&& item) = delete;
39 BackgroundSync& operator=(BackgroundSync const&) = delete;
40 BackgroundSync& operator=(BackgroundSync&&) = delete;
41
42 std::shared_ptr<data_model::FlagDescriptor> GetFlag(
43 std::string const& key) const override;
44 std::shared_ptr<data_model::SegmentDescriptor> GetSegment(
45 std::string const& key) const override;
46 std::unordered_map<std::string, std::shared_ptr<data_model::FlagDescriptor>>
47 AllFlags() const override;
48 std::unordered_map<std::string,
49 std::shared_ptr<data_model::SegmentDescriptor>>
50 AllSegments() const override;
51
52 std::string const& Identity() const override;
53
54 void Initialize() override;
55
56 bool Initialized() const override;
57
58 private:
60 data_components::ChangeNotifier change_notifier_;
61 // Needs to be shared to that the source can keep itself alive through
62 // async operations.
63 std::shared_ptr<data_interfaces::IDataSynchronizer> synchronizer_;
64};
65} // namespace launchdarkly::server_side::data_systems
IDataSystem obtains data used for flag evaluations and makes it available to other components.
Definition idata_system.hpp:11
Definition background_sync_system.hpp:27
bool Initialized() const override
Definition background_sync_system.cpp:41
std::string const & Identity() const override
Definition background_sync_system.cpp:45
std::unordered_map< std::string, std::shared_ptr< data_model::SegmentDescriptor > > AllSegments() const override
Get a map of all segments.
Definition background_sync_system.cpp:66
std::unordered_map< std::string, std::shared_ptr< data_model::FlagDescriptor > > AllFlags() const override
Get a map of all flags.
Definition background_sync_system.cpp:61
std::shared_ptr< data_model::SegmentDescriptor > GetSegment(std::string const &key) const override
Get the segment named by key. Returns nullptr if no such flag exists.
Definition background_sync_system.cpp:55
void Initialize() override
Initializes the system. This method will be called before any of the IStore methods are called.
Definition background_sync_system.cpp:36
std::shared_ptr< data_model::FlagDescriptor > GetFlag(std::string const &key) const override
Get the flag named by key. Returns nullptr if no such flag exists.
Definition background_sync_system.cpp:50