|
| ClientImpl (Config config, std::string const &version) |
|
| ClientImpl (ClientImpl &&)=delete |
|
| ClientImpl (ClientImpl const &)=delete |
|
ClientImpl & | operator= (ClientImpl)=delete |
|
ClientImpl & | operator= (ClientImpl &&other)=delete |
|
bool | Initialized () const override |
|
class AllFlagsState | AllFlagsState (Context const &context, AllFlagsState::Options options=AllFlagsState::Options::Default) override |
|
void | Track (Context const &ctx, std::string event_name, Value data, double metric_value) override |
|
void | Track (Context const &ctx, std::string event_name, Value data) override |
|
void | Track (Context const &ctx, std::string event_name) override |
|
void | FlushAsync () override |
|
void | Identify (Context context) override |
|
bool | BoolVariation (Context const &ctx, FlagKey const &key, bool default_value) override |
|
EvaluationDetail< bool > | BoolVariationDetail (Context const &ctx, FlagKey const &key, bool default_value) override |
|
std::string | StringVariation (Context const &ctx, FlagKey const &key, std::string default_value) override |
|
EvaluationDetail< std::string > | StringVariationDetail (Context const &ctx, FlagKey const &key, std::string default_value) override |
|
double | DoubleVariation (Context const &ctx, FlagKey const &key, double default_value) override |
|
EvaluationDetail< double > | DoubleVariationDetail (Context const &ctx, FlagKey const &key, double default_value) override |
|
int | IntVariation (Context const &ctx, FlagKey const &key, int default_value) override |
|
EvaluationDetail< int > | IntVariationDetail (Context const &ctx, FlagKey const &key, int default_value) override |
|
Value | JsonVariation (Context const &ctx, FlagKey const &key, Value default_value) override |
|
EvaluationDetail< Value > | JsonVariationDetail (Context const &ctx, FlagKey const &key, Value default_value) override |
|
IDataSourceStatusProvider & | DataSourceStatus () override |
|
std::future< bool > | StartAsync () override |
|
| IClient (IClient const &item)=delete |
|
| IClient (IClient &&item)=delete |
|
IClient & | operator= (IClient const &)=delete |
|
IClient & | operator= (IClient &&)=delete |
|
Evaluates all flags for a context, returning a data structure containing the results and additional flag metadata.
The method's behavior can be controlled by passing a combination of one or more options.
A common use-case for AllFlagsState is to generate data suitable for bootstrapping the client-side JavaScript SDK.
This method will not send analytics events back to LaunchDarkly.
- Parameters
-
context | The context against which all flags will be evaluated. |
options | A combination of one or more options. Omitting this argument is equivalent to passing AllFlagsState::Options::Default. |
- Returns
- An AllFlagsState data structure.
Implements launchdarkly::server_side::IClient.
bool launchdarkly::server_side::ClientImpl::Initialized |
( |
| ) |
const |
|
overridevirtual |
Returns a boolean value indicating LaunchDarkly connection and flag state within the client.
When you first start the client, once StartAsync has completed, Initialized should return true if and only if either 1. it connected to LaunchDarkly and successfully retrieved flags, or 2. it started in offline mode so there's no need to connect to LaunchDarkly.
If the client timed out trying to connect to LD, then Initialized returns false (even if we do have cached flags). If the client connected and got a 401 error, Initialized will return false.
This serves the purpose of letting the app know that there was a problem of some kind.
- Returns
- True if the client is initialized.
Implements launchdarkly::server_side::IClient.
std::future< bool > launchdarkly::server_side::ClientImpl::StartAsync |
( |
| ) |
|
|
overridevirtual |
Connects the client to LaunchDarkly's flag delivery endpoints.
StartAsync must be called once for the SDK to start receiving flag data. It does not need to be called more than one time.
The returned future will resolve to true or false based on the logic outlined on Initialized.
Blocking indefinitely on the future (e.g. by calling .get() or .wait()) is highly discouraged. Instead, use a method that takes a timeout like .wait_for() or .wait_until(), or do not wait.
Otherwise, the application may hang indefinitely if the client cannot connect to LaunchDarkly.
While the client is connecting asynchronously, it is safe to call variation methods, which will return application-defined default values.
The client will always continue to attempt to connect asynchronously after being started unless it encounters an unrecoverable error. The returned promise timing out does not affect this behavior.
Implements launchdarkly::server_side::IClient.