C++ Client-Side SDK
LaunchDarkly SDK
builder.h
Go to the documentation of this file.
1 
2 // NOLINTBEGIN modernize-use-using
3 
4 #pragma once
5 
7 
11 
12 #include <stdbool.h>
13 #include <stddef.h>
14 
15 #ifdef __cplusplus
16 extern "C" { // only need to export C interface if
17 // used by C++ source code
18 #endif
19 
20 typedef struct _LDClientConfigBuilder* LDClientConfigBuilder;
21 typedef struct _LDDataSourceStreamBuilder* LDDataSourceStreamBuilder;
22 typedef struct _LDDataSourcePollBuilder* LDDataSourcePollBuilder;
23 typedef struct _LDPersistenceCustomBuilder* LDPersistenceCustomBuilder;
24 typedef struct _LDClientHttpPropertiesTlsBuilder*
25  LDClientHttpPropertiesTlsBuilder;
26 
27 typedef void (*SetFn)(char const* storage_namespace,
28  char const* key,
29  char const* data,
30  void* user_data);
31 
32 typedef void (*RemoveFn)(char const* storage_namespace,
33  char const* key,
34  void* user_data);
35 
36 typedef size_t (*ReadFn)(char const* storage_namespace,
37  char const* key,
38  char const** read_value,
39  void* user_data);
40 
41 typedef void (*FreeFn)(char const* value, void* user_data);
42 
46 struct LDPersistence {
55  SetFn Set;
56 
64  RemoveFn Remove;
65 
76  ReadFn Read;
77 
82  FreeFn FreeRead;
83 
87  void* UserData;
88 };
89 
95 LD_EXPORT(void)
96 LDPersistence_Init(struct LDPersistence* implementation);
97 
101 LD_EXPORT(LDClientConfigBuilder)
102 LDClientConfigBuilder_New(char const* sdk_key);
103 
109 LD_EXPORT(void)
111  char const* url);
117 LD_EXPORT(void)
119  char const* url);
125 LD_EXPORT(void)
127  char const* url);
134 LD_EXPORT(void)
136  LDClientConfigBuilder b,
137  char const* url);
138 
145 LD_EXPORT(void)
146 LDClientConfigBuilder_AppInfo_Identifier(LDClientConfigBuilder b,
147  char const* app_id);
148 
156 LD_EXPORT(void)
157 LDClientConfigBuilder_AppInfo_Version(LDClientConfigBuilder b,
158  char const* app_version);
159 
166 LD_EXPORT(void)
167 LDClientConfigBuilder_Offline(LDClientConfigBuilder b, bool offline);
168 
175 LD_EXPORT(void)
176 LDClientConfigBuilder_Events_Enabled(LDClientConfigBuilder b, bool enabled);
177 
185 LD_EXPORT(void)
186 LDClientConfigBuilder_Events_Capacity(LDClientConfigBuilder b, size_t capacity);
187 
195 LD_EXPORT(void)
196 LDClientConfigBuilder_Events_FlushIntervalMs(LDClientConfigBuilder b,
197  unsigned int milliseconds);
198 
222 LD_EXPORT(void)
224  bool all_attributes_private);
225 
232 LD_EXPORT(void)
233 LDClientConfigBuilder_Events_PrivateAttribute(LDClientConfigBuilder b,
234  char const* attribute_reference);
246 LD_EXPORT(void)
247 LDClientConfigBuilder_DataSource_WithReasons(LDClientConfigBuilder b,
248  bool with_reasons);
249 
263 LD_EXPORT(void)
264 LDClientConfigBuilder_DataSource_UseReport(LDClientConfigBuilder b,
265  bool use_report);
277 LD_EXPORT(void)
279  LDClientConfigBuilder b,
280  LDDataSourceStreamBuilder stream_builder);
281 
293 LD_EXPORT(void)
295  LDClientConfigBuilder b,
296  LDDataSourcePollBuilder poll_builder);
297 
306 LD_EXPORT(LDDataSourceStreamBuilder)
308 
320 LD_EXPORT(void)
321 LDDataSourceStreamBuilder_InitialReconnectDelayMs(LDDataSourceStreamBuilder b,
322  unsigned int milliseconds);
323 
330 LD_EXPORT(void)
331 LDDataSourceStreamBuilder_Free(LDDataSourceStreamBuilder b);
332 
341 LD_EXPORT(LDDataSourcePollBuilder)
343 
349 LD_EXPORT(void)
350 LDDataSourcePollBuilder_IntervalS(LDDataSourcePollBuilder b,
351  unsigned int seconds);
352 
359 LD_EXPORT(void)
360 LDDataSourcePollBuilder_Free(LDDataSourcePollBuilder b);
361 
369 LD_EXPORT(void)
371  char const* wrapper_name);
372 
380 LD_EXPORT(void)
382  LDClientConfigBuilder b,
383  char const* wrapper_version);
384 
393 LD_EXPORT(void)
394 LDClientConfigBuilder_HttpProperties_Header(LDClientConfigBuilder b,
395  char const* key,
396  char const* value);
397 
403 LD_EXPORT(void)
405  LDClientConfigBuilder b,
406  LDClientHttpPropertiesTlsBuilder tls_builder);
407 
416 LD_EXPORT(LDClientHttpPropertiesTlsBuilder)
418 
425 LD_EXPORT(void)
426 LDClientHttpPropertiesTlsBuilder_Free(LDClientHttpPropertiesTlsBuilder b);
427 
438 LD_EXPORT(void)
440  LDClientHttpPropertiesTlsBuilder b,
441  bool skip_verify_peer);
442 
458 LD_EXPORT(void)
460  LDClientHttpPropertiesTlsBuilder b,
461  char const* custom_ca_file);
462 
467 LD_EXPORT(void)
468 LDClientConfigBuilder_Logging_Disable(LDClientConfigBuilder b);
469 
475 LD_EXPORT(void)
476 LDClientConfigBuilder_Logging_Basic(LDClientConfigBuilder b,
477  LDLoggingBasicBuilder basic_builder);
478 
484 LD_EXPORT(void)
485 LDClientConfigBuilder_Logging_Custom(LDClientConfigBuilder b,
486  LDLoggingCustomBuilder custom_builder);
487 
495 LD_EXPORT(LDPersistenceCustomBuilder)
497 
503 LD_EXPORT(void)
504 LDPersistenceCustomBuilder_Free(LDPersistenceCustomBuilder b);
505 
512 LD_EXPORT(void)
513 LDPersistenceCustomBuilder_Implementation(LDPersistenceCustomBuilder b,
514  struct LDPersistence impl);
515 
522 LD_EXPORT(void)
524  LDClientConfigBuilder b,
525  LDPersistenceCustomBuilder custom_builder);
526 
531 LD_EXPORT(void)
532 LDClientConfigBuilder_Persistence_None(LDClientConfigBuilder b);
533 
544 LD_EXPORT(LDStatus)
545 LDClientConfigBuilder_Build(LDClientConfigBuilder builder,
546  LDClientConfig* out_config);
547 
552 LD_EXPORT(void)
553 LDClientConfigBuilder_Free(LDClientConfigBuilder builder);
554 
555 #ifdef __cplusplus
556 }
557 #endif
558 
559 // NOLINTEND modernize-use-using
LDClientHttpPropertiesTlsBuilder_SkipVerifyPeer(LDClientHttpPropertiesTlsBuilder b, bool skip_verify_peer)
Definition: builder.cpp:327
LDClientConfigBuilder_Logging_Disable(LDClientConfigBuilder b)
Definition: builder.cpp:356
LDClientConfigBuilder_AppInfo_Version(LDClientConfigBuilder b, char const *app_version)
Definition: builder.cpp:156
LDClientConfigBuilder_Logging_Basic(LDClientConfigBuilder b, LDLoggingBasicBuilder basic_builder)
Definition: builder.cpp:363
LDClientConfigBuilder_HttpProperties_WrapperName(LDClientConfigBuilder b, char const *wrapper_name)
Definition: builder.cpp:285
LDClientConfigBuilder_DataSource_WithReasons(LDClientConfigBuilder b, bool with_reasons)
Definition: builder.cpp:212
LDClientConfigBuilder_ServiceEndpoints_RelayProxyBaseURL(LDClientConfigBuilder b, char const *url)
Definition: builder.cpp:137
LDClientConfigBuilder_Free(LDClientConfigBuilder builder)
Definition: builder.cpp:105
LDClientConfigBuilder_Events_Enabled(LDClientConfigBuilder b, bool enabled)
Definition: builder.cpp:172
LDClientConfigBuilder_Events_FlushIntervalMs(LDClientConfigBuilder b, unsigned int milliseconds)
Definition: builder.cpp:187
LDClientConfigBuilder_AppInfo_Identifier(LDClientConfigBuilder b, char const *app_id)
Definition: builder.cpp:147
LDClientConfigBuilder_Persistence_Custom(LDClientConfigBuilder b, LDPersistenceCustomBuilder custom_builder)
Definition: builder.cpp:418
LDClientConfigBuilder_HttpProperties_Header(LDClientConfigBuilder b, char const *key, char const *value)
Definition: builder.cpp:304
LDClientConfigBuilder_HttpProperties_WrapperVersion(LDClientConfigBuilder b, char const *wrapper_version)
Definition: builder.cpp:294
LDClientConfigBuilder_DataSource_UseReport(LDClientConfigBuilder b, bool use_report)
Definition: builder.cpp:220
LDClientConfigBuilder_DataSource_MethodPoll(LDClientConfigBuilder b, LDDataSourcePollBuilder poll_builder)
Definition: builder.cpp:240
LDClientConfigBuilder_ServiceEndpoints_StreamingBaseURL(LDClientConfigBuilder b, char const *url)
Definition: builder.cpp:119
LDClientConfigBuilder_ServiceEndpoints_PollingBaseURL(LDClientConfigBuilder b, char const *url)
Definition: builder.cpp:110
LDPersistence_Init(struct LDPersistence *implementation)
LDPersistenceCustomBuilder_Free(LDPersistenceCustomBuilder b)
LDClientConfigBuilder_Events_PrivateAttribute(LDClientConfigBuilder b, char const *attribute_reference)
Definition: builder.cpp:204
LDPersistenceCustomBuilder_Implementation(LDPersistenceCustomBuilder b, struct LDPersistence impl)
Definition: builder.cpp:409
LDClientConfigBuilder_Events_Capacity(LDClientConfigBuilder b, size_t capacity)
Definition: builder.cpp:179
LDClientConfigBuilder_Persistence_None(LDClientConfigBuilder b)
Definition: builder.cpp:431
LDClientConfigBuilder_DataSource_MethodStream(LDClientConfigBuilder b, LDDataSourceStreamBuilder stream_builder)
Definition: builder.cpp:228
LDDataSourceStreamBuilder_Free(LDDataSourceStreamBuilder b)
LDDataSourceStreamBuilder_InitialReconnectDelayMs(LDDataSourceStreamBuilder b, unsigned int milliseconds)
Definition: builder.cpp:256
LDDataSourcePollBuilder_Free(LDDataSourcePollBuilder b)
LDClientConfigBuilder_HttpProperties_Tls(LDClientConfigBuilder b, LDClientHttpPropertiesTlsBuilder tls_builder)
Definition: builder.cpp:315
LDDataSourcePollBuilder_IntervalS(LDDataSourcePollBuilder b, unsigned int seconds)
Definition: builder.cpp:273
LDClientConfigBuilder_Logging_Custom(LDClientConfigBuilder b, LDLoggingCustomBuilder custom_builder)
Definition: builder.cpp:388
LDClientConfigBuilder_Build(LDClientConfigBuilder builder, LDClientConfig *out_config)
Definition: builder.cpp:96
LDPersistenceCustomBuilder_New()
LDDataSourceStreamBuilder_New()
LDClientConfigBuilder_ServiceEndpoints_EventsBaseURL(LDClientConfigBuilder b, char const *url)
Definition: builder.cpp:128
LDClientHttpPropertiesTlsBuilder_Free(LDClientHttpPropertiesTlsBuilder b)
Definition: builder.cpp:351
LDClientConfigBuilder_New(char const *sdk_key)
Definition: builder.cpp:89
LDClientConfigBuilder_Offline(LDClientConfigBuilder b, bool offline)
Definition: builder.cpp:165
LDClientHttpPropertiesTlsBuilder_CustomCAFile(LDClientHttpPropertiesTlsBuilder b, char const *custom_ca_file)
Definition: builder.cpp:336
LDClientHttpPropertiesTlsBuilder_New(void)
Definition: builder.cpp:346
LDDataSourcePollBuilder_New()
LDClientConfigBuilder_Events_AllAttributesPrivate(LDClientConfigBuilder b, bool all_attributes_private)
Definition: builder.cpp:196
Export macros for C bindings.
Definition: builder.h:46
ReadFn Read
Definition: builder.h:76
SetFn Set
Definition: builder.h:55
void * UserData
Definition: builder.h:87
RemoveFn Remove
Definition: builder.h:64
FreeFn FreeRead
Definition: builder.h:82