C++ Client-Side SDK
LaunchDarkly SDK
sdk.h
Go to the documentation of this file.
1 
4 // NOLINTBEGIN modernize-use-using
5 #pragma once
6 
8 
19 
20 #include <stddef.h>
21 #include <stdint.h>
22 #include <time.h>
23 
24 #ifdef __cplusplus
25 extern "C" { // only need to export C interface if
26 // used by C++ source code
27 #endif
28 
29 typedef struct _LDClientSDK* LDClientSDK;
30 
43 LD_EXPORT(LDClientSDK)
44 LDClientSDK_New(LDClientConfig config, LDContext context);
45 
50 LD_EXPORT(char const*)
52 
100 LD_EXPORT(bool)
101 LDClientSDK_Start(LDClientSDK sdk,
102  unsigned int milliseconds,
103  bool* out_succeeded);
104 
123 LD_EXPORT(bool)
124 LDClientSDK_Initialized(LDClientSDK sdk);
125 
131 LD_EXPORT(void)
132 LDClientSDK_TrackEvent(LDClientSDK sdk, char const* event_name);
133 
148 LD_EXPORT(void)
149 LDClientSDK_TrackMetric(LDClientSDK sdk,
150  char const* event_name,
151  double metric_value,
152  LDValue data);
153 
164 LD_EXPORT(void)
165 LDClientSDK_TrackData(LDClientSDK sdk, char const* event_name, LDValue data);
166 
175 LD_EXPORT(void)
176 LDClientSDK_Flush(LDClientSDK sdk, unsigned int reserved);
177 
229 LD_EXPORT(bool)
230 LDClientSDK_Identify(LDClientSDK sdk,
231  LDContext context,
232  unsigned int milliseconds,
233  bool* out_succeeded);
234 
243 LD_EXPORT(bool)
244 LDClientSDK_BoolVariation(LDClientSDK sdk,
245  char const* flag_key,
246  bool default_value);
247 
260 LD_EXPORT(bool)
261 LDClientSDK_BoolVariationDetail(LDClientSDK sdk,
262  char const* flag_key,
263  bool default_value,
264  LDEvalDetail* out_detail);
265 
276 LD_EXPORT(char*)
277 LDClientSDK_StringVariation(LDClientSDK sdk,
278  char const* flag_key,
279  char const* default_value);
280 
295 LD_EXPORT(char*)
296 LDClientSDK_StringVariationDetail(LDClientSDK sdk,
297  char const* flag_key,
298  char const* default_value,
299  LDEvalDetail* out_detail);
300 
309 LD_EXPORT(int)
310 LDClientSDK_IntVariation(LDClientSDK sdk,
311  char const* flag_key,
312  int default_value);
313 
326 LD_EXPORT(int)
327 LDClientSDK_IntVariationDetail(LDClientSDK sdk,
328  char const* flag_key,
329  int default_value,
330  LDEvalDetail* out_detail);
331 
340 LD_EXPORT(int)
341 LDClientSDK_DoubleVariation(LDClientSDK sdk,
342  char const* flag_key,
343  double default_value);
344 
357 LD_EXPORT(int)
358 LDClientSDK_DoubleVariationDetail(LDClientSDK sdk,
359  char const* flag_key,
360  double default_value,
361  LDEvalDetail* out_detail);
362 
373 LD_EXPORT(LDValue)
374 LDClientSDK_JsonVariation(LDClientSDK sdk,
375  char const* flag_key,
376  LDValue default_value);
377 
392 LD_EXPORT(LDValue)
393 LDClientSDK_JsonVariationDetail(LDClientSDK sdk,
394  char const* flag_key,
395  LDValue default_value,
396  LDEvalDetail* out_detail);
397 
419 LD_EXPORT(LDValue)
420 LDClientSDK_AllFlags(LDClientSDK sdk);
421 
426 LD_EXPORT(void)
427 LDClientSDK_Free(LDClientSDK sdk);
428 
446 LD_EXPORT(LDListenerConnection)
448  char const* flag_key,
449  struct LDFlagListener listener);
450 
451 typedef struct _LDDataSourceStatus* LDDataSourceStatus;
452 
467 
478 
490 
495 
505 };
506 
511 LD_EXPORT(enum LDDataSourceStatus_State)
512 LDDataSourceStatus_GetState(LDDataSourceStatus status);
513 
530 LD_EXPORT(LDDataSourceStatus_ErrorInfo)
531 LDDataSourceStatus_GetLastError(LDDataSourceStatus status);
532 
551 LD_EXPORT(time_t)
552 LDDataSourceStatus_StateSince(LDDataSourceStatus status);
553 
554 typedef void (*DataSourceStatusCallbackFn)(LDDataSourceStatus status,
555  void* user_data);
556 
572  DataSourceStatusCallbackFn StatusChanged;
573 
577  void* UserData;
578 };
579 
595 LD_EXPORT(void)
597 
609 LD_EXPORT(LDListenerConnection)
611  LDClientSDK sdk,
612  struct LDDataSourceStatusListener listener);
613 
619 LD_EXPORT(LDDataSourceStatus)
620 LDClientSDK_DataSourceStatus_Status(LDClientSDK sdk);
621 
626 LD_EXPORT(void)
627 LDDataSourceStatus_Free(LDDataSourceStatus status);
628 
629 #ifdef __cplusplus
630 }
631 #endif
632 
633 // NOLINTEND modernize-use-using
LaunchDarkly Server-side C Bindings for Data Source Error Info.
Export macros for C bindings.
struct _LDListenerConnection * LDListenerConnection
Definition: listener_connection.h:23
LDClientSDK_Initialized(LDClientSDK sdk)
LDDataSourceStatus_StateSince(LDDataSourceStatus status)
LDClientSDK_Flush(LDClientSDK sdk, unsigned int reserved)
Definition: sdk.cpp:141
LDClientSDK_TrackEvent(LDClientSDK sdk, char const *event_name)
Definition: sdk.cpp:104
LDClientSDK_IntVariation(LDClientSDK sdk, char const *flag_key, int default_value)
Definition: sdk.cpp:226
LDClientSDK_DataSourceStatus_OnStatusChange(LDClientSDK sdk, struct LDDataSourceStatusListener listener)
Definition: sdk.cpp:383
LDClientSDK_JsonVariationDetail(LDClientSDK sdk, char const *flag_key, LDValue default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:286
LDClientSDK_JsonVariation(LDClientSDK sdk, char const *flag_key, LDValue default_value)
Definition: sdk.cpp:272
LDClientSDK_BoolVariationDetail(LDClientSDK sdk, char const *flag_key, bool default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:186
LDClientSDK_Free(LDClientSDK sdk)
LDClientSDK_TrackMetric(LDClientSDK sdk, char const *event_name, double metric_value, LDValue data)
Definition: sdk.cpp:112
LDClientSDK_Identify(LDClientSDK sdk, LDContext context, unsigned int milliseconds, bool *out_succeeded)
Definition: sdk.cpp:148
LDClientSDK_AllFlags(LDClientSDK sdk)
Definition: sdk.cpp:303
LDDataSourceStatus_GetLastError(LDDataSourceStatus status)
Definition: sdk.cpp:356
LDDataSourceStatus_GetState(LDDataSourceStatus status)
Definition: sdk.cpp:349
LDClientSDK_BoolVariation(LDClientSDK sdk, char const *flag_key, bool default_value)
Definition: sdk.cpp:176
LDClientSDK_DoubleVariation(LDClientSDK sdk, char const *flag_key, double default_value)
Definition: sdk.cpp:249
LDClientSDK_DataSourceStatus_Status(LDClientSDK sdk)
Definition: sdk.cpp:402
LDClientSDK_Start(LDClientSDK sdk, unsigned int milliseconds, bool *out_succeeded)
Definition: sdk.cpp:75
LDClientSDK_FlagNotifier_OnFlagChange(LDClientSDK sdk, char const *flag_key, struct LDFlagListener listener)
Definition: sdk.cpp:322
LDClientSDK_TrackData(LDClientSDK sdk, char const *event_name, LDValue data)
Definition: sdk.cpp:128
LDClientSDK_IntVariationDetail(LDClientSDK sdk, char const *flag_key, int default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:236
LDDataSourceStatusListener_Init(struct LDDataSourceStatusListener *listener)
Definition: sdk.cpp:377
LDClientSDK_StringVariationDetail(LDClientSDK sdk, char const *flag_key, char const *default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:211
LDClientSDK_Version(void)
Definition: sdk.cpp:70
LDClientSDK_DoubleVariationDetail(LDClientSDK sdk, char const *flag_key, double default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:259
LDDataSourceStatus_State
Definition: sdk.h:456
@ LD_DATASOURCESTATUS_STATE_SHUTDOWN
Definition: sdk.h:504
@ LD_DATASOURCESTATUS_STATE_INTERRUPTED
Definition: sdk.h:489
@ LD_DATASOURCESTATUS_STATE_VALID
Definition: sdk.h:477
@ LD_DATASOURCESTATUS_STATE_INITIALIZING
Definition: sdk.h:466
@ LD_DATASOURCESTATUS_STATE_OFFLINE
Definition: sdk.h:494
LDClientSDK_StringVariation(LDClientSDK sdk, char const *flag_key, char const *default_value)
Definition: sdk.cpp:199
LDClientSDK_New(LDClientConfig config, LDContext context)
Definition: sdk.cpp:54
LDDataSourceStatus_Free(LDDataSourceStatus status)
Definition: sdk.h:563
void * UserData
Definition: sdk.h:577
Definition: flag_listener.h:24
struct _LDValue * LDValue
Definition: value.h:64