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 
10 
20 
21 #include <stddef.h>
22 #include <stdint.h>
23 #include <time.h>
24 
25 #ifdef __cplusplus
26 extern "C" { // only need to export C interface if
27 // used by C++ source code
28 #endif
29 
30 typedef struct _LDServerSDK* LDServerSDK;
31 
48 LD_EXPORT(LDServerSDK)
49 LDServerSDK_New(LDServerConfig config);
50 
60 LD_EXPORT(char const*)
62 
110 LD_EXPORT(bool)
111 LDServerSDK_Start(LDServerSDK sdk,
112  unsigned int milliseconds,
113  bool* out_succeeded);
114 
137 LD_EXPORT(bool)
138 LDServerSDK_Initialized(LDServerSDK sdk);
139 
151 LD_EXPORT(void)
152 LDServerSDK_TrackEvent(LDServerSDK sdk,
153  LDContext context,
154  char const* event_name);
155 
182 LD_EXPORT(void)
183 LDServerSDK_TrackMetric(LDServerSDK sdk,
184  LDContext context,
185  char const* event_name,
186  double metric_value,
187  LDValue data);
188 
203 LD_EXPORT(void)
204 LDServerSDK_TrackData(LDServerSDK sdk,
205  LDContext context,
206  char const* event_name,
207  LDValue data);
208 
221 LD_EXPORT(void)
222 LDServerSDK_Flush(LDServerSDK sdk, unsigned int reserved);
223 
234 LD_EXPORT(void)
235 LDServerSDK_Identify(LDServerSDK sdk, LDContext context);
236 
251 LD_EXPORT(bool)
252 LDServerSDK_BoolVariation(LDServerSDK sdk,
253  LDContext context,
254  char const* flag_key,
255  bool default_value);
256 
279 LD_EXPORT(bool)
280 LDServerSDK_BoolVariationDetail(LDServerSDK sdk,
281  LDContext context,
282  char const* flag_key,
283  bool default_value,
284  LDEvalDetail* out_detail);
285 
297 LD_EXPORT(char*)
298 LDServerSDK_StringVariation(LDServerSDK sdk,
299  LDContext context,
300  char const* flag_key,
301  char const* default_value);
302 
318 LD_EXPORT(char*)
319 LDServerSDK_StringVariationDetail(LDServerSDK sdk,
320  LDContext context,
321  char const* flag_key,
322  char const* default_value,
323  LDEvalDetail* out_detail);
324 
334 LD_EXPORT(int)
335 LDServerSDK_IntVariation(LDServerSDK sdk,
336  LDContext context,
337  char const* flag_key,
338  int default_value);
339 
353 LD_EXPORT(int)
354 LDServerSDK_IntVariationDetail(LDServerSDK sdk,
355  LDContext context,
356  char const* flag_key,
357  int default_value,
358  LDEvalDetail* out_detail);
359 
369 LD_EXPORT(double)
370 LDServerSDK_DoubleVariation(LDServerSDK sdk,
371  LDContext context,
372  char const* flag_key,
373  double default_value);
374 
388 LD_EXPORT(double)
389 LDServerSDK_DoubleVariationDetail(LDServerSDK sdk,
390  LDContext context,
391  char const* flag_key,
392  double default_value,
393  LDEvalDetail* out_detail);
394 
406 LD_EXPORT(LDValue)
407 LDServerSDK_JsonVariation(LDServerSDK sdk,
408  LDContext context,
409  char const* flag_key,
410  LDValue default_value);
411 
427 LD_EXPORT(LDValue)
428 LDServerSDK_JsonVariationDetail(LDServerSDK sdk,
429  LDContext context,
430  char const* flag_key,
431  LDValue default_value,
432  LDEvalDetail* out_detail);
433 
451 LD_EXPORT(void)
453  LDContext context,
454  char const* event_name,
455  LDHookContext hook_context);
456 
473 LD_EXPORT(void)
475  LDContext context,
476  char const* event_name,
477  double metric_value,
478  LDValue data,
479  LDHookContext hook_context);
480 
494 LD_EXPORT(void)
496  LDContext context,
497  char const* event_name,
498  LDValue data,
499  LDHookContext hook_context);
500 
514 LD_EXPORT(bool)
516  LDContext context,
517  char const* flag_key,
518  bool default_value,
519  LDHookContext hook_context);
520 
538 LD_EXPORT(bool)
540  LDContext context,
541  char const* flag_key,
542  bool default_value,
543  LDHookContext hook_context,
544  LDEvalDetail* out_detail);
545 
560 LD_EXPORT(char*)
562  LDContext context,
563  char const* flag_key,
564  char const* default_value,
565  LDHookContext hook_context);
566 
585 LD_EXPORT(char*)
587  LDContext context,
588  char const* flag_key,
589  char const* default_value,
590  LDHookContext hook_context,
591  LDEvalDetail* out_detail);
592 
606 LD_EXPORT(int)
608  LDContext context,
609  char const* flag_key,
610  int default_value,
611  LDHookContext hook_context);
612 
630 LD_EXPORT(int)
632  LDContext context,
633  char const* flag_key,
634  int default_value,
635  LDHookContext hook_context,
636  LDEvalDetail* out_detail);
637 
651 LD_EXPORT(double)
653  LDContext context,
654  char const* flag_key,
655  double default_value,
656  LDHookContext hook_context);
657 
675 LD_EXPORT(double)
677  LDContext context,
678  char const* flag_key,
679  double default_value,
680  LDHookContext hook_context,
681  LDEvalDetail* out_detail);
682 
698 LD_EXPORT(LDValue)
700  LDContext context,
701  char const* flag_key,
702  LDValue default_value,
703  LDHookContext hook_context);
704 
724 LD_EXPORT(LDValue)
726  LDContext context,
727  char const* flag_key,
728  LDValue default_value,
729  LDHookContext hook_context,
730  LDEvalDetail* out_detail);
731 
752 LD_EXPORT(LDAllFlagsState)
753 LDServerSDK_AllFlagsState(LDServerSDK sdk,
754  LDContext context,
755  enum LDAllFlagsState_Options options);
756 
761 LD_EXPORT(void)
762 LDServerSDK_Free(LDServerSDK sdk);
763 
764 typedef struct _LDServerDataSourceStatus* LDServerDataSourceStatus;
765 
780 
791 
803 
813 };
814 
819 LD_EXPORT(enum LDServerDataSourceStatus_State)
820 LDServerDataSourceStatus_GetState(LDServerDataSourceStatus status);
821 
839 LD_EXPORT(LDDataSourceStatus_ErrorInfo)
840 LDServerDataSourceStatus_GetLastError(LDServerDataSourceStatus status);
841 
860 LD_EXPORT(time_t)
861 LDServerDataSourceStatus_StateSince(LDServerDataSourceStatus status);
862 
863 typedef void (*ServerDataSourceStatusCallbackFn)(
864  LDServerDataSourceStatus status,
865  void* user_data);
866 
882  ServerDataSourceStatusCallbackFn StatusChanged;
883 
887  void* UserData;
888 };
889 
905 LD_EXPORT(void)
907  struct LDServerDataSourceStatusListener* listener);
908 
920 LD_EXPORT(LDListenerConnection)
922  LDServerSDK sdk,
923  struct LDServerDataSourceStatusListener listener);
924 
930 LD_EXPORT(LDServerDataSourceStatus)
931 LDServerSDK_DataSourceStatus_Status(LDServerSDK sdk);
932 
937 LD_EXPORT(void)
938 LDServerDataSourceStatus_Free(LDServerDataSourceStatus status);
939 
940 #ifdef __cplusplus
941 }
942 #endif
943 
944 // 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.
C bindings for passing caller data to hooks.
struct p_LDHookContext * LDHookContext
Opaque hook context handle.
Definition: hook_context.h:35
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_TrackMetric_WithHookContext(LDServerSDK sdk, LDContext context, char const *event_name, double metric_value, LDValue data, LDHookContext hook_context)
Definition: sdk.cpp:433
LDServerSDK_TrackEvent_WithHookContext(LDServerSDK sdk, LDContext context, char const *event_name, LDHookContext hook_context)
Definition: sdk.cpp:416
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_StringVariationDetail_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, char const *default_value, LDHookContext hook_context, LDEvalDetail *out_detail)
Definition: sdk.cpp:548
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
LDServerSDK_BoolVariationDetail_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, bool default_value, LDHookContext hook_context, LDEvalDetail *out_detail)
Definition: sdk.cpp:499
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_BoolVariation_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, bool default_value, LDHookContext hook_context)
Definition: sdk.cpp:479
LDServerSDK_DoubleVariationDetail_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, double default_value, LDHookContext hook_context, LDEvalDetail *out_detail)
Definition: sdk.cpp:638
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
LDServerSDK_DoubleVariation_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, double default_value, LDHookContext hook_context)
Definition: sdk.cpp:618
LDServerDataSourceStatus_StateSince(LDServerDataSourceStatus status)
Definition: sdk.cpp:363
LDServerSDK_TrackData_WithHookContext(LDServerSDK sdk, LDContext context, char const *event_name, LDValue data, LDHookContext hook_context)
Definition: sdk.cpp:457
LDServerSDK_IntVariationDetail_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, int default_value, LDHookContext hook_context, LDEvalDetail *out_detail)
Definition: sdk.cpp:595
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:769
@ LD_SERVERDATASOURCESTATUS_STATE_INTERRUPTED
Definition: sdk.h:802
@ LD_SERVERDATASOURCESTATUS_STATE_INITIALIZING
Definition: sdk.h:779
@ LD_SERVERDATASOURCESTATUS_STATE_OFF
Definition: sdk.h:812
@ LD_SERVERDATASOURCESTATUS_STATE_VALID
Definition: sdk.h:790
LDServerSDK_StringVariation_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, char const *default_value, LDHookContext hook_context)
Definition: sdk.cpp:522
LDServerSDK_JsonVariationDetail_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, LDValue default_value, LDHookContext hook_context, LDEvalDetail *out_detail)
Definition: sdk.cpp:685
LDServerSDK_Identify(LDServerSDK sdk, LDContext context)
Definition: sdk.cpp:164
LDServerSDK_IntVariation_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, int default_value, LDHookContext hook_context)
Definition: sdk.cpp:575
LDServerSDK_JsonVariation_WithHookContext(LDServerSDK sdk, LDContext context, char const *flag_key, LDValue default_value, LDHookContext hook_context)
Definition: sdk.cpp:661
LDServerDataSourceStatusListener_Init(struct LDServerDataSourceStatusListener *listener)
Definition: sdk.cpp:372
void * UserData
Definition: sdk.h:887
ServerDataSourceStatusCallbackFn StatusChanged
Definition: sdk.h:882
struct _LDValue * LDValue
Definition: value.h:64