C++ Server-Side SDK
LaunchDarkly SDK
Loading...
Searching...
No Matches
data_source_builder.hpp
1#pragma once
2
3#include <launchdarkly/config/shared/built/data_source_config.hpp>
4#include <launchdarkly/config/shared/defaults.hpp>
5#include <launchdarkly/config/shared/sdks.hpp>
6
7#include <chrono>
8#include <type_traits>
9#include <variant>
10
11namespace launchdarkly::config::shared::builders {
16template <typename SDK>
18
19template <typename T>
20struct is_server_sdk : std::false_type {};
21
22template <>
23struct is_server_sdk<ServerSDK> : std::true_type {};
24
28template <typename SDK>
30 public:
32
46 std::chrono::milliseconds initial_reconnect_delay);
47
65 template <typename T = SDK>
66 std::enable_if_t<is_server_sdk<T>::value, StreamingBuilder&> Filter(
67 std::string filter_key) {
68 config_.filter_key = std::move(filter_key);
69 return *this;
70 }
71
76 [[nodiscard]] built::StreamingConfig<SDK> Build() const;
77
78 private:
80};
81
85template <typename SDK>
87 public:
89
95 PollingBuilder& PollInterval(std::chrono::seconds poll_interval);
96
115 template <typename T = SDK>
116 std::enable_if_t<is_server_sdk<T>::value, PollingBuilder&> Filter(
117 std::string filter_key) {
118 config_.filter_key = std::move(filter_key);
119 return *this;
120 }
121
126 [[nodiscard]] built::PollingConfig<SDK> Build() const;
127
128 private:
130};
131
132template <>
134 public:
137
139
151 DataSourceBuilder& WithReasons(bool value);
152
166 DataSourceBuilder& UseReport(bool value);
167
179
191
197 [[nodiscard]] built::DataSourceConfig<ClientSDK> Build() const;
198
199 private:
200 std::variant<Streaming, Polling> method_;
201 bool with_reasons_;
202 bool use_report_;
203};
204
205} // namespace launchdarkly::config::shared::builders
DataSourceBuilder & Method(Streaming stream_builder)
Definition data_source_builder.hpp:86
PollingBuilder & PollInterval(std::chrono::seconds poll_interval)
Definition data_source_builder.cpp:44
built::PollingConfig< SDK > Build() const
Definition data_source_builder.cpp:51
std::enable_if_t< is_server_sdk< T >::value, PollingBuilder & > Filter(std::string filter_key)
Definition data_source_builder.hpp:116
StreamingBuilder & InitialReconnectDelay(std::chrono::milliseconds initial_reconnect_delay)
Definition data_source_builder.cpp:28
built::StreamingConfig< SDK > Build() const
Definition data_source_builder.cpp:35
std::enable_if_t< is_server_sdk< T >::value, StreamingBuilder & > Filter(std::string filter_key)
Definition data_source_builder.hpp:66
Definition data_source_builder.hpp:20
Definition data_source_config.hpp:55
Definition data_source_config.hpp:36
Definition data_source_config.hpp:13