C++ Client-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
defaults.hpp
1#pragma once
2
3#include <launchdarkly/config/shared/built/data_source_config.hpp>
4#include <launchdarkly/config/shared/built/events.hpp>
5#include <launchdarkly/config/shared/built/http_properties.hpp>
6#include <launchdarkly/config/shared/built/persistence.hpp>
7#include <launchdarkly/config/shared/built/service_endpoints.hpp>
8#include <launchdarkly/config/shared/sdks.hpp>
9#include <launchdarkly/logging/log_level.hpp>
10
11namespace launchdarkly::config::shared {
12
18template <typename SDK>
19struct Defaults {
24 static bool Offline() { return false; }
25
26 static std::string LogTag() { return "LaunchDarkly"; }
27 static launchdarkly::LogLevel LogLevel() { return LogLevel::kInfo; }
28};
29
30template <>
32 static bool Offline() { return Defaults<AnySDK>::Offline(); }
33
34 static auto ServiceEndpoints() -> shared::built::ServiceEndpoints {
35 return {"https://clientsdk.launchdarkly.com",
36 "https://clientstream.launchdarkly.com",
37 "https://mobile.launchdarkly.com"};
38 }
39
40 static auto Events() -> shared::built::Events {
41 return {true,
42 100,
43 std::chrono::seconds(30),
44 "/mobile",
45 false,
46 AttributeReference::SetType(),
47 std::chrono::seconds(1),
48 5,
49 std::nullopt};
50 }
51
52 static auto TLS() -> shared::built::TlsOptions { return {}; }
53
54 static auto HttpProperties() -> shared::built::HttpProperties {
55 return {std::chrono::seconds{10},
56 std::chrono::seconds{10},
57 std::chrono::seconds{10},
58 std::chrono::seconds{10},
59 std::map<std::string, std::string>(),
60 TLS()};
61 }
62
63 static auto StreamingConfig() -> shared::built::StreamingConfig<ClientSDK> {
64 return {std::chrono::seconds{1}, "/meval"};
65 }
66
67 static auto DataSourceConfig()
69 return {Defaults<ClientSDK>::StreamingConfig(), false, false};
70 }
71
72 static auto PollingConfig() -> shared::built::PollingConfig<ClientSDK> {
73 return {std::chrono::minutes(5), "/msdk/evalx/contexts",
74 "/msdk/evalx/context", std::chrono::minutes(5)};
75 }
76
77 static std::size_t MaxCachedContexts() { return 5; }
78};
79
80template <>
82 static auto ServiceEndpoints() -> built::ServiceEndpoints {
83 return {"https://sdk.launchdarkly.com",
84 "https://stream.launchdarkly.com",
85 "https://events.launchdarkly.com"};
86 }
87
88 static auto Events() -> built::Events {
89 return {true,
90 10000,
91 std::chrono::seconds(5),
92 "/bulk",
93 false,
94 AttributeReference::SetType(),
95 std::chrono::seconds(1),
96 5,
97 1000};
98 }
99
100 static auto TLS() -> shared::built::TlsOptions { return {}; }
101
102 static auto HttpProperties() -> built::HttpProperties {
103 return {std::chrono::seconds{10},
104 std::chrono::seconds{10},
105 std::chrono::seconds{10},
106 std::chrono::seconds{10},
107 std::map<std::string, std::string>(),
108 TLS()};
109 }
110
111 static auto StreamingConfig() -> built::StreamingConfig<ServerSDK> {
112 return {std::chrono::seconds{1}, "/all"};
113 }
114
115 static auto PollingConfig() -> built::PollingConfig<ServerSDK> {
116 return {std::chrono::seconds{30}, "/sdk/latest-all",
117 std::chrono::seconds{30}};
118 }
119};
120
121} // namespace launchdarkly::config::shared
Definition http_properties.hpp:11
Definition defaults.hpp:19
static bool Offline()
Definition defaults.hpp:24
Definition data_source_config.hpp:55
Definition data_source_config.hpp:36
Definition data_source_config.hpp:13