C++ Server-Side SDK
LaunchDarkly SDK
Public Types | Public Member Functions | Static Public Member Functions | List of all members
launchdarkly::server_side::Client Class Reference
Inheritance diagram for launchdarkly::server_side::Client:
Inheritance graph
[legend]
Collaboration diagram for launchdarkly::server_side::Client:
Collaboration graph
[legend]

Public Types

using FlagKey = std::string
 
- Public Types inherited from launchdarkly::server_side::IClient
using FlagKey = std::string
 

Public Member Functions

 Client (Config config)
 
std::future< bool > StartAsync () override
 
bool Initialized () const override
 
class AllFlagsState AllFlagsState (Context const &context, enum 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< ValueJsonVariationDetail (Context const &ctx, FlagKey const &key, Value default_value) override
 
IDataSourceStatusProviderDataSourceStatus () override
 
- Public Member Functions inherited from launchdarkly::server_side::IClient
 IClient (IClient const &item)=delete
 
 IClient (IClient &&item)=delete
 
IClientoperator= (IClient const &)=delete
 
IClientoperator= (IClient &&)=delete
 

Static Public Member Functions

static char const * Version ()
 

Member Function Documentation

◆ AllFlagsState()

AllFlagsState launchdarkly::server_side::Client::AllFlagsState ( Context const &  context,
enum AllFlagsState::Options  options = AllFlagsState::Options::Default 
)
overridevirtual

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
contextThe context against which all flags will be evaluated.
optionsA 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.

◆ BoolVariation()

bool launchdarkly::server_side::Client::BoolVariation ( Context const &  ctx,
FlagKey const &  key,
bool  default_value 
)
overridevirtual

Returns the boolean value of a feature flag for a given flag key.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
The variation for the selected context, or default_value if the flag is disabled in the LaunchDarkly control panel

Implements launchdarkly::server_side::IClient.

◆ BoolVariationDetail()

EvaluationDetail< bool > launchdarkly::server_side::Client::BoolVariationDetail ( Context const &  ctx,
FlagKey const &  key,
bool  default_value 
)
overridevirtual

Returns the boolean value of a feature flag for a given flag key, in an object that also describes the way the value was determined.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
An evaluation detail object.

Implements launchdarkly::server_side::IClient.

◆ DataSourceStatus()

IDataSourceStatusProvider & launchdarkly::server_side::Client::DataSourceStatus ( )
overridevirtual

Returns an interface which provides methods for subscribing to data source status.

Returns
A data source status provider.

Implements launchdarkly::server_side::IClient.

◆ DoubleVariation()

double launchdarkly::server_side::Client::DoubleVariation ( Context const &  ctx,
FlagKey const &  key,
double  default_value 
)
overridevirtual

Returns the double value of a feature flag for a given flag key.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
The variation for the selected context, or default_value if the flag is disabled in the LaunchDarkly control panel

Implements launchdarkly::server_side::IClient.

◆ DoubleVariationDetail()

EvaluationDetail< double > launchdarkly::server_side::Client::DoubleVariationDetail ( Context const &  ctx,
FlagKey const &  key,
double  default_value 
)
overridevirtual

Returns the double value of a feature flag for a given flag key, in an object that also describes the way the value was determined.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
An evaluation detail object.

Implements launchdarkly::server_side::IClient.

◆ FlushAsync()

void launchdarkly::server_side::Client::FlushAsync ( )
overridevirtual

Tells the client that all pending analytics events (if any) should be delivered as soon as possible.

Implements launchdarkly::server_side::IClient.

◆ Identify()

void launchdarkly::server_side::Client::Identify ( Context  context)
overridevirtual

Generates an identify event for a context.

Parameters
contextThe new evaluation context.

Implements launchdarkly::server_side::IClient.

◆ Initialized()

bool launchdarkly::server_side::Client::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.

◆ IntVariation()

int launchdarkly::server_side::Client::IntVariation ( Context const &  ctx,
FlagKey const &  key,
int  default_value 
)
overridevirtual

Returns the int value of a feature flag for a given flag key.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
The variation for the selected context, or default_value if the flag is disabled in the LaunchDarkly control panel

Implements launchdarkly::server_side::IClient.

◆ IntVariationDetail()

EvaluationDetail< int > launchdarkly::server_side::Client::IntVariationDetail ( Context const &  ctx,
FlagKey const &  key,
int  default_value 
)
overridevirtual

Returns the int value of a feature flag for a given flag key, in an object that also describes the way the value was determined.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
An evaluation detail object.

Implements launchdarkly::server_side::IClient.

◆ JsonVariation()

Value launchdarkly::server_side::Client::JsonVariation ( Context const &  ctx,
FlagKey const &  key,
Value  default_value 
)
overridevirtual

Returns the JSON value of a feature flag for a given flag key.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
The variation for the selected context, or default_value if the flag is disabled in the LaunchDarkly control panel

Implements launchdarkly::server_side::IClient.

◆ JsonVariationDetail()

EvaluationDetail< Value > launchdarkly::server_side::Client::JsonVariationDetail ( Context const &  ctx,
FlagKey const &  key,
Value  default_value 
)
overridevirtual

Returns the JSON value of a feature flag for a given flag key, in an object that also describes the way the value was determined.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
An evaluation detail object.

Implements launchdarkly::server_side::IClient.

◆ StartAsync()

std::future< bool > launchdarkly::server_side::Client::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.

◆ StringVariation()

std::string launchdarkly::server_side::Client::StringVariation ( Context const &  ctx,
FlagKey const &  key,
std::string  default_value 
)
overridevirtual

Returns the string value of a feature flag for a given flag key.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
The variation for the selected context, or default_value if the flag is disabled in the LaunchDarkly control panel

Implements launchdarkly::server_side::IClient.

◆ StringVariationDetail()

EvaluationDetail< std::string > launchdarkly::server_side::Client::StringVariationDetail ( Context const &  ctx,
FlagKey const &  key,
std::string  default_value 
)
overridevirtual

Returns the string value of a feature flag for a given flag key, in an object that also describes the way the value was determined.

Parameters
keyThe unique feature key for the feature flag.
default_valueThe default value of the flag.
Returns
An evaluation detail object.

Implements launchdarkly::server_side::IClient.

◆ Track() [1/3]

void launchdarkly::server_side::Client::Track ( Context const &  ctx,
std::string  event_name 
)
overridevirtual

Tracks that the current context performed an event for the given event name.

Parameters
event_nameThe name of the event.

Implements launchdarkly::server_side::IClient.

◆ Track() [2/3]

void launchdarkly::server_side::Client::Track ( Context const &  ctx,
std::string  event_name,
Value  data 
)
overridevirtual

Tracks that the current context performed an event for the given event name, with additional JSON data.

Parameters
event_nameThe name of the event.
dataA JSON value containing additional data associated with the event.

Implements launchdarkly::server_side::IClient.

◆ Track() [3/3]

void launchdarkly::server_side::Client::Track ( Context const &  ctx,
std::string  event_name,
Value  data,
double  metric_value 
)
overridevirtual

Tracks that the current context performed an event for the given event name, and associates it with a numeric metric value.

Parameters
event_nameThe name of the event.
dataA JSON value containing additional data associated with the event.
metric_valuethis value is used by the LaunchDarkly experimentation feature in numeric custom metrics, and will also be returned as part of the custom event for Data Export

Implements launchdarkly::server_side::IClient.

◆ Version()

char const * launchdarkly::server_side::Client::Version ( )
static

Returns the version of the SDK.

Returns
String representing version of the SDK.

The documentation for this class was generated from the following files: