C++ Client-Side SDK
LaunchDarkly SDK
src
data_sources
data_source_update_sink.hpp
1
#pragma once
2
3
#include <optional>
4
#include <ostream>
5
#include <string>
6
#include <unordered_map>
7
#include <vector>
8
9
#include <launchdarkly/client_side/data_source_status.hpp>
10
#include <launchdarkly/config/shared/built/service_endpoints.hpp>
11
#include <launchdarkly/context.hpp>
12
#include <launchdarkly/data/evaluation_result.hpp>
13
#include <launchdarkly/data_model/change_set.hpp>
14
#include <launchdarkly/data_model/item_descriptor.hpp>
15
16
namespace
launchdarkly::client_side {
17
18
using
ItemDescriptor = data_model::ItemDescriptor<EvaluationResult>;
19
20
// One flag's new state: an evaluation result, or an empty descriptor
21
// (tombstone) if the flag was deleted.
22
struct
FlagChange
{
23
std::string key;
24
ItemDescriptor item;
25
};
26
27
using
FlagChangeSetData = std::vector<FlagChange>;
28
29
using
FlagChangeSet = data_model::ChangeSet<FlagChangeSetData>;
30
38
class
IDataSourceUpdateSink
{
39
public
:
40
virtual
void
Init(
Context
const
& context,
41
std::unordered_map<std::string, ItemDescriptor> data) = 0;
42
virtual
void
Upsert(
Context
const
& context,
43
std::string key,
44
ItemDescriptor item) = 0;
45
55
virtual
void
Apply
(
Context
const
& context,
56
FlagChangeSet change_set,
57
bool
from_cache) = 0;
58
59
IDataSourceUpdateSink
(
IDataSourceUpdateSink
const
& item) =
delete
;
60
IDataSourceUpdateSink
(
IDataSourceUpdateSink
&& item) =
delete
;
61
IDataSourceUpdateSink
& operator=(
IDataSourceUpdateSink
const
&) =
delete
;
62
IDataSourceUpdateSink
& operator=(
IDataSourceUpdateSink
&&) =
delete
;
63
virtual
~
IDataSourceUpdateSink
() =
default
;
64
65
protected
:
66
IDataSourceUpdateSink
() =
default
;
67
};
68
69
}
// namespace launchdarkly::client_side
launchdarkly::Context
Definition:
context.hpp:29
launchdarkly::client_side::IDataSourceUpdateSink
Definition:
data_source_update_sink.hpp:38
launchdarkly::client_side::IDataSourceUpdateSink::Apply
virtual void Apply(Context const &context, FlagChangeSet change_set, bool from_cache)=0
launchdarkly::client_side::FlagChange
Definition:
data_source_update_sink.hpp:22
Generated by
1.9.1