3#include "../../../../data_components/dependency_tracker/data_kind.hpp"
4#include "../../../../data_components/status_notifications/data_source_status_manager.hpp"
5#include "../../../../data_interfaces/destination/idestination.hpp"
7#include <launchdarkly/data/evaluation_result.hpp>
8#include <launchdarkly/data_model/descriptors.hpp>
9#include <launchdarkly/logging/logger.hpp>
11#include <boost/asio/any_io_executor.hpp>
15namespace launchdarkly::server_side::data_systems {
23 static constexpr std::string_view path =
"/flags/";
27 static constexpr std::string_view path =
"/segments/";
30template <data_components::DataKind kind,
typename TPath>
33 static data_components::DataKind Kind() {
return kind; }
34 static bool IsKind(std::string
const& patch_path) {
35 return patch_path.rfind(TPath::path) == 0;
37 static std::string Key(std::string
const& patch_path) {
38 return patch_path.substr(TPath::path.size());
47 static std::optional<data_components::DataKind> Kind(
48 std::string
const& path) {
49 if (Flag::IsKind(path)) {
50 return data_components::DataKind::kFlag;
52 if (Segment::IsKind(path)) {
53 return data_components::DataKind::kSegment;
58 static std::optional<std::string> Key(std::string
const& path) {
59 if (Flag::IsKind(path)) {
60 return Flag::Key(path);
62 if (Segment::IsKind(path)) {
63 return Segment::Key(path);
90 data_model::SDKDataSet data;
95 std::variant<data_model::FlagDescriptor, data_model::SegmentDescriptor>
101 data_components::DataKind kind;
107 Logger
const& logger,
117 std::string
const& data);
121 Logger
const& logger_;
Definition data_source_status_manager.hpp:16
IDestination represents a sink for data received by the SDK. A destination may be a database,...
Definition idestination.hpp:14
Definition event_handler.hpp:77
MessageStatus HandleMessage(std::string const &type, std::string const &data)
Definition event_handler.cpp:134
MessageStatus
Definition event_handler.hpp:83
Definition event_handler.hpp:31
Definition event_handler.hpp:99
Definition event_handler.hpp:93
Definition event_handler.hpp:89
Definition event_handler.hpp:22
Definition event_handler.hpp:26
Definition event_handler.hpp:42