2 #include <launchdarkly/config/shared/defaults.hpp>
3 #include <launchdarkly/server_side/config/built/data_system/background_sync_config.hpp>
4 #include <launchdarkly/server_side/config/built/data_system/data_destination_config.hpp>
5 #include <launchdarkly/server_side/config/built/data_system/data_system_config.hpp>
6 #include <launchdarkly/server_side/config/built/data_system/fdv2_config.hpp>
7 #include <launchdarkly/server_side/config/built/data_system/lazy_load_config.hpp>
9 namespace launchdarkly::server_side::config {
14 static auto BootstrapConfig() -> std::optional<built::BootstrapConfig> {
19 static auto DataDestinationConfig()
20 -> std::optional<built::DataDestinationConfig> {
24 static auto SynchronizerConfig()
25 -> built::BackgroundSyncConfig::StreamingConfig {
26 return {std::chrono::seconds(1),
"/all"};
29 static auto BackgroundSyncConfig() -> built::BackgroundSyncConfig {
30 return {BootstrapConfig(), SynchronizerConfig(),
31 DataDestinationConfig()};
34 static auto LazyLoadConfig() -> built::LazyLoadConfig {
35 return {built::LazyLoadConfig::EvictionPolicy::Disabled,
36 std::chrono::minutes{5},
nullptr};
39 static auto FDv2StreamingConfig() -> built::FDv2Config::StreamingConfig {
40 return {std::chrono::seconds{1}};
43 static auto FDv2PollingConfig() -> built::FDv2Config::PollingConfig {
44 return {std::chrono::seconds{30}};
47 static auto FDv2Config() -> built::FDv2Config {
48 using StreamingConfig = built::FDv2Config::StreamingConfig;
49 using PollingConfig = built::FDv2Config::PollingConfig;
50 using SyncVariant = std::variant<StreamingConfig, PollingConfig>;
51 using FallbackVariant =
52 std::variant<built::FDv2Config::FDv1StreamingConfig,
53 built::FDv2Config::FDv1PollingConfig>;
55 {FDv2PollingConfig()},
56 std::vector<SyncVariant>{FDv2StreamingConfig(),
60 std::chrono::minutes{2},
61 std::chrono::minutes{5}};
64 static auto DataSystemConfig() -> built::DataSystemConfig {
65 return {
false, BackgroundSyncConfig()};
Definition: defaults.hpp:19