C++ Server-Side SDK
LaunchDarkly SDK
sdk.h
Go to the documentation of this file.
1 
4 // NOLINTBEGIN modernize-use-using
5 #pragma once
6 
9 
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 _LDServerSDK* LDServerSDK;
30 
47 LD_EXPORT(LDServerSDK)
48 LDServerSDK_New(LDServerConfig config);
49 
59 LD_EXPORT(char const*)
61 
109 LD_EXPORT(bool)
110 LDServerSDK_Start(LDServerSDK sdk,
111  unsigned int milliseconds,
112  bool* out_succeeded);
113 
136 LD_EXPORT(bool)
137 LDServerSDK_Initialized(LDServerSDK sdk);
138 
150 LD_EXPORT(void)
151 LDServerSDK_TrackEvent(LDServerSDK sdk,
152  LDContext context,
153  char const* event_name);
154 
181 LD_EXPORT(void)
182 LDServerSDK_TrackMetric(LDServerSDK sdk,
183  LDContext context,
184  char const* event_name,
185  double metric_value,
186  LDValue data);
187 
202 LD_EXPORT(void)
203 LDServerSDK_TrackData(LDServerSDK sdk,
204  LDContext context,
205  char const* event_name,
206  LDValue data);
207 
220 LD_EXPORT(void)
221 LDServerSDK_Flush(LDServerSDK sdk, unsigned int reserved);
222 
233 LD_EXPORT(void)
234 LDServerSDK_Identify(LDServerSDK sdk, LDContext context);
235 
250 LD_EXPORT(bool)
251 LDServerSDK_BoolVariation(LDServerSDK sdk,
252  LDContext context,
253  char const* flag_key,
254  bool default_value);
255 
278 LD_EXPORT(bool)
279 LDServerSDK_BoolVariationDetail(LDServerSDK sdk,
280  LDContext context,
281  char const* flag_key,
282  bool default_value,
283  LDEvalDetail* out_detail);
284 
296 LD_EXPORT(char*)
297 LDServerSDK_StringVariation(LDServerSDK sdk,
298  LDContext context,
299  char const* flag_key,
300  char const* default_value);
301 
317 LD_EXPORT(char*)
318 LDServerSDK_StringVariationDetail(LDServerSDK sdk,
319  LDContext context,
320  char const* flag_key,
321  char const* default_value,
322  LDEvalDetail* out_detail);
323 
333 LD_EXPORT(int)
334 LDServerSDK_IntVariation(LDServerSDK sdk,
335  LDContext context,
336  char const* flag_key,
337  int default_value);
338 
352 LD_EXPORT(int)
353 LDServerSDK_IntVariationDetail(LDServerSDK sdk,
354  LDContext context,
355  char const* flag_key,
356  int default_value,
357  LDEvalDetail* out_detail);
358 
368 LD_EXPORT(double)
369 LDServerSDK_DoubleVariation(LDServerSDK sdk,
370  LDContext context,
371  char const* flag_key,
372  double default_value);
373 
387 LD_EXPORT(double)
388 LDServerSDK_DoubleVariationDetail(LDServerSDK sdk,
389  LDContext context,
390  char const* flag_key,
391  double default_value,
392  LDEvalDetail* out_detail);
393 
405 LD_EXPORT(LDValue)
406 LDServerSDK_JsonVariation(LDServerSDK sdk,
407  LDContext context,
408  char const* flag_key,
409  LDValue default_value);
410 
426 LD_EXPORT(LDValue)
427 LDServerSDK_JsonVariationDetail(LDServerSDK sdk,
428  LDContext context,
429  char const* flag_key,
430  LDValue default_value,
431  LDEvalDetail* out_detail);
432 
453 LD_EXPORT(LDAllFlagsState)
454 LDServerSDK_AllFlagsState(LDServerSDK sdk,
455  LDContext context,
456  enum LDAllFlagsState_Options options);
457 
462 LD_EXPORT(void)
463 LDServerSDK_Free(LDServerSDK sdk);
464 
465 typedef struct _LDServerDataSourceStatus* LDServerDataSourceStatus;
466 
481 
492 
504 
514 };
515 
520 LD_EXPORT(enum LDServerDataSourceStatus_State)
521 LDServerDataSourceStatus_GetState(LDServerDataSourceStatus status);
522 
540 LD_EXPORT(LDDataSourceStatus_ErrorInfo)
541 LDServerDataSourceStatus_GetLastError(LDServerDataSourceStatus status);
542 
561 LD_EXPORT(time_t)
562 LDServerDataSourceStatus_StateSince(LDServerDataSourceStatus status);
563 
564 typedef void (*ServerDataSourceStatusCallbackFn)(
565  LDServerDataSourceStatus status,
566  void* user_data);
567 
583  ServerDataSourceStatusCallbackFn StatusChanged;
584 
588  void* UserData;
589 };
590 
606 LD_EXPORT(void)
608  struct LDServerDataSourceStatusListener* listener);
609 
621 LD_EXPORT(LDListenerConnection)
623  LDServerSDK sdk,
624  struct LDServerDataSourceStatusListener listener);
625 
631 LD_EXPORT(LDServerDataSourceStatus)
632 LDServerSDK_DataSourceStatus_Status(LDServerSDK sdk);
633 
638 LD_EXPORT(void)
639 LDServerDataSourceStatus_Free(LDServerDataSourceStatus status);
640 
641 #ifdef __cplusplus
642 }
643 #endif
644 
645 // NOLINTEND modernize-use-using
LDAllFlagsState_Options
Definition: all_flags_state.h:106
LaunchDarkly Server-side C Bindings for Data Source Error Info.
Export macros for C bindings.
struct _LDListenerConnection * LDListenerConnection
Definition: listener_connection.h:23
LDServerSDK_JsonVariation(LDServerSDK sdk, LDContext context, char const *flag_key, LDValue default_value)
Definition: sdk.cpp:292
LDServerDataSourceStatus_Free(LDServerDataSourceStatus status)
LDServerSDK_DataSourceStatus_Status(LDServerSDK sdk)
Definition: sdk.cpp:399
LDServerSDK_AllFlagsState(LDServerSDK sdk, LDContext context, enum LDAllFlagsState_Options options)
Definition: sdk.cpp:328
LDServerSDK_DoubleVariationDetail(LDServerSDK sdk, LDContext context, char const *flag_key, double default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:276
LDServerSDK_Flush(LDServerSDK sdk, unsigned int reserved)
Definition: sdk.cpp:157
LDServerSDK_IntVariationDetail(LDServerSDK sdk, LDContext context, char const *flag_key, int default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:247
LDServerSDK_TrackData(LDServerSDK sdk, LDContext context, char const *event_name, LDValue data)
Definition: sdk.cpp:140
LDServerSDK_Initialized(LDServerSDK sdk)
LDServerSDK_Start(LDServerSDK sdk, unsigned int milliseconds, bool *out_succeeded)
Definition: sdk.cpp:81
LDServerSDK_DoubleVariation(LDServerSDK sdk, LDContext context, char const *flag_key, double default_value)
Definition: sdk.cpp:263
LDServerDataSourceStatus_GetLastError(LDServerDataSourceStatus status)
Definition: sdk.cpp:352
LDServerSDK_BoolVariation(LDServerSDK sdk, LDContext context, char const *flag_key, bool default_value)
Definition: sdk.cpp:172
LDServerSDK_Version(void)
Definition: sdk.cpp:76
LDServerSDK_BoolVariationDetail(LDServerSDK sdk, LDContext context, char const *flag_key, bool default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:185
LDServerSDK_TrackEvent(LDServerSDK sdk, LDContext context, char const *event_name)
Definition: sdk.cpp:110
LDServerSDK_New(LDServerConfig config)
Definition: sdk.cpp:64
LDServerSDK_TrackMetric(LDServerSDK sdk, LDContext context, char const *event_name, double metric_value, LDValue data)
Definition: sdk.cpp:121
LDServerSDK_Free(LDServerSDK sdk)
LDServerSDK_StringVariationDetail(LDServerSDK sdk, LDContext context, char const *flag_key, char const *default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:217
LDServerSDK_IntVariation(LDServerSDK sdk, LDContext context, char const *flag_key, int default_value)
Definition: sdk.cpp:234
LDServerDataSourceStatus_StateSince(LDServerDataSourceStatus status)
Definition: sdk.cpp:363
LDServerSDK_DataSourceStatus_OnStatusChange(LDServerSDK sdk, struct LDServerDataSourceStatusListener listener)
Definition: sdk.cpp:379
LDServerDataSourceStatus_GetState(LDServerDataSourceStatus status)
Definition: sdk.cpp:345
LDServerSDK_StringVariation(LDServerSDK sdk, LDContext context, char const *flag_key, char const *default_value)
Definition: sdk.cpp:201
LDServerSDK_JsonVariationDetail(LDServerSDK sdk, LDContext context, char const *flag_key, LDValue default_value, LDEvalDetail *out_detail)
Definition: sdk.cpp:308
LDServerDataSourceStatus_State
Definition: sdk.h:470
@ LD_SERVERDATASOURCESTATUS_STATE_INTERRUPTED
Definition: sdk.h:503
@ LD_SERVERDATASOURCESTATUS_STATE_INITIALIZING
Definition: sdk.h:480
@ LD_SERVERDATASOURCESTATUS_STATE_OFF
Definition: sdk.h:513
@ LD_SERVERDATASOURCESTATUS_STATE_VALID
Definition: sdk.h:491
LDServerSDK_Identify(LDServerSDK sdk, LDContext context)
Definition: sdk.cpp:164
LDServerDataSourceStatusListener_Init(struct LDServerDataSourceStatusListener *listener)
Definition: sdk.cpp:372
void * UserData
Definition: sdk.h:588
ServerDataSourceStatusCallbackFn StatusChanged
Definition: sdk.h:583
struct _LDValue * LDValue
Definition: value.h:64