3 #include <launchdarkly/context.hpp>
4 #include <launchdarkly/data/evaluation_detail.hpp>
5 #include <launchdarkly/server_side/config/config.hpp>
6 #include <launchdarkly/server_side/hooks/hook.hpp>
7 #include <launchdarkly/value.hpp>
9 #include <launchdarkly/server_side/all_flags_state.hpp>
10 #include <launchdarkly/server_side/big_segment_store_status.hpp>
11 #include <launchdarkly/server_side/data_source_status.hpp>
17 #include <unordered_map>
19 namespace launchdarkly::server_side {
108 std::string event_name,
110 double metric_value) = 0;
128 std::string event_name,
142 std::string event_name,
158 std::string event_name,
181 std::string event_name,
208 bool default_value) = 0;
237 bool default_value) = 0;
267 std::string default_value) = 0;
284 std::string default_value,
298 std::string default_value) = 0;
315 std::string default_value,
328 double default_value) = 0;
344 double default_value,
358 double default_value) = 0;
375 double default_value,
388 int default_value) = 0;
417 int default_value) = 0;
447 Value default_value) = 0;
477 Value default_value) = 0;
537 std::string event_name,
539 double metric_value)
override;
542 std::string event_name,
550 std::string event_name,
554 void Track(
Context const& ctx, std::string event_name)
override;
557 std::string event_name,
566 bool default_value)
override;
575 bool default_value)
override;
585 std::string default_value)
override;
590 std::string default_value,
596 std::string default_value)
override;
601 std::string default_value,
606 double default_value)
override;
610 double default_value,
616 double default_value)
override;
621 double default_value,
626 int default_value)
override;
635 int default_value)
override;
645 Value default_value)
override;
654 Value default_value)
override;
670 [[nodiscard]]
static char const*
Version();
673 inline static char const*
const kVersion =
675 std::unique_ptr<IClient> client;
Definition: context.hpp:29
Definition: evaluation_detail.hpp:18
Definition: all_flags_state.hpp:27
Options
Definition: all_flags_state.hpp:29
Definition: client.hpp:522
EvaluationDetail< int > IntVariationDetail(Context const &ctx, FlagKey const &key, int default_value) override
Definition: client.cpp:185
bool Initialized() const override
Definition: client.cpp:28
EvaluationDetail< bool > BoolVariationDetail(Context const &ctx, FlagKey const &key, bool default_value) override
Definition: client.cpp:101
void FlushAsync() override
Definition: client.cpp:80
IBigSegmentStoreStatusProvider & BigSegmentStoreStatus() override
Definition: client.cpp:232
std::future< bool > StartAsync() override
Definition: client.cpp:32
bool BoolVariation(Context const &ctx, FlagKey const &key, bool default_value) override
Definition: client.cpp:88
IDataSourceStatusProvider & DataSourceStatus() override
Definition: client.cpp:228
std::string StringVariation(Context const &ctx, FlagKey const &key, std::string default_value) override
Definition: client.cpp:115
Value JsonVariation(Context const &ctx, FlagKey const &key, Value default_value) override
Definition: client.cpp:199
double DoubleVariation(Context const &ctx, FlagKey const &key, double default_value) override
Definition: client.cpp:145
void Identify(Context context) override
Definition: client.cpp:84
EvaluationDetail< std::string > StringVariationDetail(Context const &ctx, FlagKey const &key, std::string default_value) override
Definition: client.cpp:129
EvaluationDetail< double > DoubleVariationDetail(Context const &ctx, FlagKey const &key, double default_value) override
Definition: client.cpp:158
void Track(Context const &ctx, std::string event_name, Value data, double metric_value) override
Definition: client.cpp:43
EvaluationDetail< Value > JsonVariationDetail(Context const &ctx, FlagKey const &key, Value default_value) override
Definition: client.cpp:213
static char const * Version()
Definition: client.cpp:236
int IntVariation(Context const &ctx, FlagKey const &key, int default_value) override
Definition: client.cpp:172
Definition: big_segment_store_status.hpp:43
Definition: client.hpp:23
virtual IDataSourceStatusProvider & DataSourceStatus()=0
virtual void Track(Context const &ctx, std::string event_name, Value data, double metric_value, hooks::HookContext const &hook_context)=0
virtual EvaluationDetail< std::string > StringVariationDetail(Context const &ctx, FlagKey const &key, std::string default_value)=0
virtual double DoubleVariation(Context const &ctx, FlagKey const &key, double default_value, hooks::HookContext const &hook_context)=0
virtual EvaluationDetail< double > DoubleVariationDetail(Context const &ctx, FlagKey const &key, double default_value, hooks::HookContext const &hook_context)=0
virtual IBigSegmentStoreStatusProvider & BigSegmentStoreStatus()=0
virtual void FlushAsync()=0
virtual std::string StringVariation(Context const &ctx, FlagKey const &key, std::string default_value, hooks::HookContext const &hook_context)=0
virtual std::string StringVariation(Context const &ctx, FlagKey const &key, std::string default_value)=0
virtual void Track(Context const &ctx, std::string event_name, Value data, hooks::HookContext const &hook_context)=0
std::string FlagKey
Definition: client.hpp:28
virtual bool BoolVariation(Context const &ctx, FlagKey const &key, bool default_value)=0
virtual void Track(Context const &ctx, std::string event_name, hooks::HookContext const &hook_context)=0
virtual Value JsonVariation(Context const &ctx, FlagKey const &key, Value default_value)=0
virtual void Track(Context const &ctx, std::string event_name, Value data, double metric_value)=0
virtual EvaluationDetail< int > IntVariationDetail(Context const &ctx, FlagKey const &key, int default_value)=0
virtual EvaluationDetail< int > IntVariationDetail(Context const &ctx, FlagKey const &key, int default_value, hooks::HookContext const &hook_context)=0
virtual void Track(Context const &ctx, std::string event_name, Value data)=0
virtual EvaluationDetail< bool > BoolVariationDetail(Context const &ctx, FlagKey const &key, bool default_value, hooks::HookContext const &hook_context)=0
virtual std::future< bool > StartAsync()=0
virtual int IntVariation(Context const &ctx, FlagKey const &key, int default_value, hooks::HookContext const &hook_context)=0
virtual void Track(Context const &ctx, std::string event_name)=0
virtual int IntVariation(Context const &ctx, FlagKey const &key, int default_value)=0
virtual Value JsonVariation(Context const &ctx, FlagKey const &key, Value default_value, hooks::HookContext const &hook_context)=0
virtual EvaluationDetail< Value > JsonVariationDetail(Context const &ctx, FlagKey const &key, Value default_value, hooks::HookContext const &hook_context)=0
virtual bool BoolVariation(Context const &ctx, FlagKey const &key, bool default_value, hooks::HookContext const &hook_context)=0
virtual EvaluationDetail< double > DoubleVariationDetail(Context const &ctx, FlagKey const &key, double default_value)=0
virtual bool Initialized() const =0
virtual void Identify(Context context)=0
virtual EvaluationDetail< std::string > StringVariationDetail(Context const &ctx, FlagKey const &key, std::string default_value, hooks::HookContext const &hook_context)=0
virtual EvaluationDetail< bool > BoolVariationDetail(Context const &ctx, FlagKey const &key, bool default_value)=0
virtual double DoubleVariation(Context const &ctx, FlagKey const &key, double default_value)=0
virtual EvaluationDetail< Value > JsonVariationDetail(Context const &ctx, FlagKey const &key, Value default_value)=0
Definition: data_source_status.hpp:69
Definition: config.hpp:14