C++ Server-Side SDK
LaunchDarkly SDK
All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
streaming_data_source.hpp
1#pragma once
2
3#include "event_handler.hpp"
4
5#include "../../../../data_components/status_notifications/data_source_status_manager.hpp"
6#include "../../../../data_interfaces/destination/idestination.hpp"
7#include "../../../../data_interfaces/source/idata_synchronizer.hpp"
8
9#include <launchdarkly/logging/logger.hpp>
10#include <launchdarkly/server_side/config/built/all_built.hpp>
11#include <launchdarkly/sse/client.hpp>
12
13#include <boost/asio/any_io_executor.hpp>
14
15namespace launchdarkly::server_side::data_systems {
16
19 public std::enable_shared_from_this<StreamingDataSource> {
20 public:
22 boost::asio::any_io_executor io,
23 Logger const& logger,
25 config::built::ServiceEndpoints const& endpoints,
27 config::built::HttpProperties const& http_properties);
28
30 data_model::SDKDataSet const* bootstrap_data) override;
31 void ShutdownAsync(std::function<void()> completion) override;
32
33 [[nodiscard]] std::string const& Identity() const override;
34
35 private:
36 void HandleErrorStateChange(sse::Error error, std::string error_string);
37
38 boost::asio::any_io_executor io_;
39 Logger const& logger_;
40
43
44 std::optional<DataSourceEventHandler> event_handler_;
45 std::string streaming_endpoint_;
46
48
49 std::shared_ptr<sse::Client> client_;
50};
51} // namespace launchdarkly::server_side::data_systems
IDataSynchronizer obtains data via a background synchronization mechanism, updating an IDestination w...
Definition idata_synchronizer.hpp:17
IDestination represents a sink for data received by the SDK. A destination may be a database,...
Definition idestination.hpp:14
void StartAsync(data_interfaces::IDestination *dest, data_model::SDKDataSet const *bootstrap_data) override
Starts synchronizing data into the given IDestination.
Definition streaming_data_source.cpp:45
std::string const & Identity() const override
Definition streaming_data_source.cpp:26
void ShutdownAsync(std::function< void()> completion) override
Stops the synchronization mechanism. Stop will be called only once after StartAsync....
Definition streaming_data_source.cpp:207