C++ Server-Side SDK
LaunchDarkly SDK
config.hpp
1 #pragma once
2 
3 #include <launchdarkly/server_side/config/built/all_built.hpp>
4 #include <launchdarkly/server_side/config/built/big_segments_config.hpp>
5 #include <launchdarkly/server_side/config/built/data_system/data_system_config.hpp>
6 #include <launchdarkly/server_side/hooks/hook.hpp>
7 
8 #include <memory>
9 #include <optional>
10 #include <vector>
11 
12 namespace launchdarkly::server_side {
13 
14 struct Config {
15  public:
16  Config(std::string sdk_key,
17  config::built::Logging logging,
19  config::built::Events events,
20  std::optional<std::string> application_tag,
21  config::built::DataSystemConfig data_system_config,
22  std::optional<config::built::BigSegmentsConfig> big_segments,
23  config::built::HttpProperties http_properties,
24  std::vector<std::shared_ptr<hooks::Hook>> hooks);
25 
26  [[nodiscard]] std::string const& SdkKey() const;
27 
28  [[nodiscard]] config::built::ServiceEndpoints const& ServiceEndpoints()
29  const;
30 
31  [[nodiscard]] config::built::Events const& Events() const;
32 
33  [[nodiscard]] std::optional<std::string> const& ApplicationTag() const;
34 
35  config::built::DataSystemConfig const& DataSystemConfig() const;
36 
41  [[nodiscard]] std::optional<config::built::BigSegmentsConfig> const&
42  BigSegments() const;
43 
44  [[nodiscard]] config::built::HttpProperties const& HttpProperties() const;
45 
46  [[nodiscard]] config::built::Logging const& Logging() const;
47 
48  [[nodiscard]] std::vector<std::shared_ptr<hooks::Hook>> const& Hooks()
49  const;
50 
51  private:
52  std::string sdk_key_;
53  bool offline_;
54  config::built::Logging logging_;
55  config::built::ServiceEndpoints service_endpoints_;
56  std::optional<std::string> application_tag_;
57  config::built::Events events_;
58  config::built::DataSystemConfig data_system_config_;
59  std::optional<config::built::BigSegmentsConfig> big_segments_;
60  config::built::HttpProperties http_properties_;
61  std::vector<std::shared_ptr<hooks::Hook>> hooks_;
62 };
63 } // namespace launchdarkly::server_side
Definition: http_properties.hpp:70
Definition: service_endpoints.hpp:11
Definition: config.hpp:14
std::optional< config::built::BigSegmentsConfig > const & BigSegments() const
Definition: config.cpp:46