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 
111 LD_EXPORT(void)
112 LDPersistence_Init(struct LDPersistence* implementation);
113 
117 LD_EXPORT(LDClientConfigBuilder)
118 LDClientConfigBuilder_New(char const* sdk_key);
119 
125 LD_EXPORT(void)
127  char const* url);
133 LD_EXPORT(void)
135  char const* url);
141 LD_EXPORT(void)
143  char const* url);
150 LD_EXPORT(void)
152  LDClientConfigBuilder b,
153  char const* url);
154 
161 LD_EXPORT(void)
162 LDClientConfigBuilder_AppInfo_Identifier(LDClientConfigBuilder b,
163  char const* app_id);
164 
172 LD_EXPORT(void)
173 LDClientConfigBuilder_AppInfo_Version(LDClientConfigBuilder b,
174  char const* app_version);
175 
182 LD_EXPORT(void)
183 LDClientConfigBuilder_Offline(LDClientConfigBuilder b, bool offline);
184 
191 LD_EXPORT(void)
192 LDClientConfigBuilder_Events_Enabled(LDClientConfigBuilder b, bool enabled);
193 
201 LD_EXPORT(void)
202 LDClientConfigBuilder_Events_Capacity(LDClientConfigBuilder b, size_t capacity);
203 
211 LD_EXPORT(void)
212 LDClientConfigBuilder_Events_FlushIntervalMs(LDClientConfigBuilder b,
213  unsigned int milliseconds);
214 
238 LD_EXPORT(void)
240  bool all_attributes_private);
241 
248 LD_EXPORT(void)
249 LDClientConfigBuilder_Events_PrivateAttribute(LDClientConfigBuilder b,
250  char const* attribute_reference);
262 LD_EXPORT(void)
263 LDClientConfigBuilder_DataSource_WithReasons(LDClientConfigBuilder b,
264  bool with_reasons);
265 
279 LD_EXPORT(void)
280 LDClientConfigBuilder_DataSource_UseReport(LDClientConfigBuilder b,
281  bool use_report);
298 LD_EXPORT(void)
300  LDClientConfigBuilder b,
301  LDDataSourceStreamBuilder stream_builder);
302 
319 LD_EXPORT(void)
321  LDClientConfigBuilder b,
322  LDDataSourcePollBuilder poll_builder);
323 
332 LD_EXPORT(LDDataSourceStreamBuilder)
334 
346 LD_EXPORT(void)
347 LDDataSourceStreamBuilder_InitialReconnectDelayMs(LDDataSourceStreamBuilder b,
348  unsigned int milliseconds);
349 
356 LD_EXPORT(void)
357 LDDataSourceStreamBuilder_Free(LDDataSourceStreamBuilder b);
358 
367 LD_EXPORT(LDDataSourcePollBuilder)
369 
375 LD_EXPORT(void)
376 LDDataSourcePollBuilder_IntervalS(LDDataSourcePollBuilder b,
377  unsigned int seconds);
378 
385 LD_EXPORT(void)
386 LDDataSourcePollBuilder_Free(LDDataSourcePollBuilder b);
387 
395 LD_EXPORT(void)
397  char const* wrapper_name);
398 
406 LD_EXPORT(void)
408  LDClientConfigBuilder b,
409  char const* wrapper_version);
410 
419 LD_EXPORT(void)
420 LDClientConfigBuilder_HttpProperties_Header(LDClientConfigBuilder b,
421  char const* key,
422  char const* value);
423 
435 LD_EXPORT(void)
437  LDClientConfigBuilder b,
438  LDClientHttpPropertiesTlsBuilder tls_builder);
439 
448 LD_EXPORT(LDClientHttpPropertiesTlsBuilder)
450 
457 LD_EXPORT(void)
458 LDClientHttpPropertiesTlsBuilder_Free(LDClientHttpPropertiesTlsBuilder b);
459 
470 LD_EXPORT(void)
472  LDClientHttpPropertiesTlsBuilder b,
473  bool skip_verify_peer);
474 
490 LD_EXPORT(void)
492  LDClientHttpPropertiesTlsBuilder b,
493  char const* custom_ca_file);
494 
499 LD_EXPORT(void)
500 LDClientConfigBuilder_Logging_Disable(LDClientConfigBuilder b);
501 
514 LD_EXPORT(void)
515 LDClientConfigBuilder_Logging_Basic(LDClientConfigBuilder b,
516  LDLoggingBasicBuilder basic_builder);
517 
529 LD_EXPORT(void)
530 LDClientConfigBuilder_Logging_Custom(LDClientConfigBuilder b,
531  LDLoggingCustomBuilder custom_builder);
532 
540 LD_EXPORT(LDPersistenceCustomBuilder)
542 
548 LD_EXPORT(void)
549 LDPersistenceCustomBuilder_Free(LDPersistenceCustomBuilder b);
550 
557 LD_EXPORT(void)
558 LDPersistenceCustomBuilder_Implementation(LDPersistenceCustomBuilder b,
559  struct LDPersistence impl);
560 
574 LD_EXPORT(void)
576  LDClientConfigBuilder b,
577  LDPersistenceCustomBuilder custom_builder);
578 
583 LD_EXPORT(void)
584 LDClientConfigBuilder_Persistence_None(LDClientConfigBuilder b);
585 
601 LD_EXPORT(LDStatus)
602 LDClientConfigBuilder_Build(LDClientConfigBuilder builder,
603  LDClientConfig* out_config);
604 
609 LD_EXPORT(void)
610 LDClientConfigBuilder_Free(LDClientConfigBuilder builder);
611 
612 #ifdef __cplusplus
613 }
614 #endif
615 
616 // 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