-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
305 lines (293 loc) · 10.6 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
NAME
LaunchDarkly::Server - Perl server side SDK for LaunchDarkly
SYNOPSIS
use LaunchDarkly::Server;
my $config = LaunchDarkly::Server::LDConfigNew("my-sdk-key");
my $timeout = 10000;
my $debug = 0;
my $default = 0;
my $client = LaunchDarkly::Server::LDClientInit($config, $timeout);
my $user = LaunchDarkly::Server::LDUserNew("user123");
my result = LaunchDarkly::Server::LDBoolVariation($client, $user, "my-very-new-feature", $default, $debug);
print LaunchDarkly::Server::LDDetailsToString() unless not $debug;
LaunchDarkly::Server::LDUserFree($user);
LaunchDarkly::Server::LDClientClose($client);
DESCRIPTION
See https://docs.launchdarkly.com/sdk/server-side/c-c--
EXPORT
None by default.
Exportable constants
LD_CLIENT_NOT_READY
LD_CLIENT_NOT_SPECIFIED
LD_ERROR
LD_FALLTHROUGH
LD_FLAG_NOT_FOUND
LD_LOG_CRITICAL
LD_LOG_DEBUG
LD_LOG_ERROR
LD_LOG_FATAL
LD_LOG_INFO
LD_LOG_TRACE
LD_LOG_WARNING
LD_MALFORMED_FLAG
LD_NULL_KEY
LD_OFF
LD_OOM
LD_PREREQUISITE_FAILED
LD_RULE_MATCH
LD_STORE_ERROR
LD_TARGET_MATCH
LD_UNKNOWN
LD_USER_NOT_SPECIFIED
LD_WRONG_TYPE
Exportable functions
void
LDSetLogLevel(int level)
struct LDJSON *
LDAllFlags(struct LDClient *const client, const struct LDUser *const user)
struct LDAllFlagsState *
LDAllFlagsState(struct LDClient *const client, const struct LDUser *const user, unsigned int options)
void
LDAllFlagsStateFree(struct LDAllFlagsState *flags)
struct LDDetails*
LDAllFlagsStateGetDetails(struct LDAllFlagsState* flags, const char* key)
struct LDJSON*
LDAllFlagsStateGetValue(struct LDAllFlagsState* flags, const char* key)
char*
LDAllFlagsStateSerializeJSON(struct LDAllFlagsState *flags)
struct LDJSON*
LDAllFlagsStateToValuesMap(struct LDAllFlagsState* flags)
LDBoolean
LDAllFlagsStateValid(struct LDAllFlagsState *flags)
LDBoolean
LDArrayAppend(struct LDJSON *const prefix, const struct LDJSON *const suffix)
struct LDJSON *
LDArrayLookup(const struct LDJSON *const array, const unsigned int index)
LDBoolean
LDArrayPush(struct LDJSON *const array, struct LDJSON *const item)
LDBoolean
LDBoolVariation(
struct LDClient *const client,
const struct LDUser *const user,
const char *const key,
const LDBoolean fallback,
bool getDetails)
LDBoolean
LDClientAlias(
struct LDClient *const client,
const struct LDUser *const currentUser,
const struct LDUser *const previousUser)
LDBoolean
LDClientClose(struct LDClient *const client)
LDBoolean
LDClientFlush(struct LDClient *const client)
LDBoolean
LDClientIdentify(
struct LDClient *const client, const struct LDUser *const user)
LDClientInit(struct LDConfig *const config, const unsigned int maxwaitmilli)
LDBoolean
LDClientIsInitialized(struct LDClient *const client)
LDBoolean
LDClientIsOffline(struct LDClient *const client)
LDClientTrack(
struct LDClient *const client,
const char *const key,
const struct LDUser *const user,
struct LDJSON *const data)
LDClientTrackMetric(
struct LDClient *const client,
const char *const key,
const struct LDUser *const user,
struct LDJSON *const data,
const double metric)
LDCollectionDetachIter(
struct LDJSON *const collection, struct LDJSON *const iter)
unsigned int
LDCollectionGetSize(const struct LDJSON *const collection)
LDBoolean
LDConfigAddPrivateAttribute(
struct LDConfig *const config, const char *const attribute)
void
LDConfigFree(struct LDConfig *const config)
void
LDConfigInlineUsersInEvents(
struct LDConfig *const config, const LDBoolean inlineUsersInEvents)
struct LDConfig *
LDConfigNew(const char *const key)
void
LDConfigSetAllAttributesPrivate(
struct LDConfig *const config, const LDBoolean allAttributesPrivate)
LDBoolean
LDConfigSetBaseURI(struct LDConfig *const config, const char *const baseURI)
void
LDConfigSetEventsCapacity(
struct LDConfig *const config, const unsigned int eventsCapacity)
LDBoolean
LDConfigSetEventsURI(
struct LDConfig *const config, const char *const eventsURI)
void
LDConfigSetFeatureStoreBackend(
struct LDConfig *const config, struct LDStoreInterface *const backend)
void
LDConfigSetFeatureStoreBackendCacheTTL(
struct LDConfig *const config, const unsigned int milliseconds)
void
LDConfigSetFlushInterval(
struct LDConfig *const config, const unsigned int milliseconds)
void
LDConfigSetOffline(struct LDConfig *const config, const LDBoolean offline)
void
LDConfigSetPollInterval(
struct LDConfig *const config, const unsigned int milliseconds)
void
LDConfigSetSendEvents(
struct LDConfig *const config, const LDBoolean sendEvents)
void
LDConfigSetStream(struct LDConfig *const config, const LDBoolean stream)
LDBoolean
LDConfigSetStreamURI(
struct LDConfig *const config, const char *const streamURI)
void
LDConfigSetTimeout(
struct LDConfig *const config, const unsigned int milliseconds)
void
LDConfigSetUseLDD(struct LDConfig *const config, const LDBoolean useLDD)
void
LDConfigSetUserKeysCapacity(
struct LDConfig *const config, const unsigned int userKeysCapacity)
void
LDConfigSetUserKeysFlushInterval(
struct LDConfig *const config, const unsigned int milliseconds)
LDBoolean
LDConfigSetWrapperInfo(
struct LDConfig *const config,
const char *const wrapperName,
const char *const wrapperVersion)
void LDDetailsClear(struct LDDetails *const details)
void LDDetailsInit(struct LDDetails *const details)
double
LDDoubleVariation(
struct LDClient *const client,
const struct LDUser *const user,
const char *const key,
const double fallback,
bool getDetails)
const char *
LDEvalErrorKindToString(const enum LDEvalErrorKind kind)
const char * LDEvalReasonKindToString(const enum LDEvalReason kind)
LDBoolean LDGetBool(const struct LDJSON *const node)
LDBoolean LDGetBool(const struct LDJSON *const node)
struct LDJSON * LDGetIter(const struct LDJSON *const collection)
struct LDJSON * LDGetIter(const struct LDJSON *const collection)
double LDGetNumber(const struct LDJSON *const node)
double LDGetNumber(const struct LDJSON *const node)
const char * LDGetText(const struct LDJSON *const node)
const char * LDGetText(const struct LDJSON *const node)
int
LDIntVariation(
struct LDClient *const client,
const struct LDUser *const user,
const char *const key,
const int fallback,
bool getDetails)
const char *
LDIterKey(const struct LDJSON *const iter)
struct LDJSON *
LDIterNext(const struct LDJSON *const iter)
LDBoolean
LDJSONCompare(
const struct LDJSON *const left, const struct LDJSON *const right)
struct LDJSON *
LDJSONDeserialize(const char *const text)
struct LDJSON *
LDJSONDuplicate(const struct LDJSON *const json)
void
LDJSONFree(struct LDJSON *const json)
LDJSONType
LDJSONGetType(const struct LDJSON *const json)
char *
LDJSONSerialize(const struct LDJSON *const json)
struct LDJSON *
LDJSONVariation(
struct LDClient *const client,
const struct LDUser *const user,
const char *const key,
const struct LDJSON *const fallback,
bool getDetails)
struct LDJSON *
LDNewArray(void)
struct LDJSON *
LDNewBool(const LDBoolean boolean)
struct LDJSON *
LDNewNull(void)
struct LDJSON *
LDNewNumber(const double number)
struct LDJSON *
LDNewObject(void)
struct LDJSON *
LDNewText(const char *const text)
void
LDObjectDeleteKey(struct LDJSON *const object, const char *const key)
struct LDJSON *
LDObjectDetachKey(struct LDJSON *const object, const char *const key)
struct LDJSON *
LDObjectLookup(const struct LDJSON *const object, const char *const key)
LDBoolean
LDObjectMerge(struct LDJSON *const to, const struct LDJSON *const from)
LDBoolean
LDObjectSetKey(
struct LDJSON *const object,
const char *const key,
struct LDJSON *const item)
struct LDJSON *
LDReasonToJSON(const struct LDDetails *const details)
LDBoolean
LDSetNumber(struct LDJSON *const node, const double number)
char *
LDStringVariation(
struct LDClient *const client,
const struct LDUser *const user,
const char *const key,
const char *const fallback,
bool getDetails)
LDBoolean
LDUserAddPrivateAttribute(
struct LDUser *const user, const char *const attribute)
void
LDUserFree(struct LDUser *const user)
struct LDUser *
LDUserNew(const char *const key)
void
LDUserSetAnonymous(struct LDUser *const user, const LDBoolean anon)
LDBoolean
LDUserSetAvatar(struct LDUser *const user, const char *const avatar)
LDBoolean
LDUserSetCountry(struct LDUser *const user, const char *const country)
void
LDUserSetCustom(struct LDUser *const user, struct LDJSON *const custom)
void
LDUserSetCustomAttributesJSON(
struct LDUser *const user, struct LDJSON *const custom)
LDBoolean
LDUserSetEmail(struct LDUser *const user, const char *const email)
LDBoolean
LDUserSetFirstName(struct LDUser *const user, const char *const firstName)
LDBoolean
LDUserSetIP(struct LDUser *const user, const char *const ip)
LDBoolean
LDUserSetLastName(struct LDUser *const user, const char *const lastName)
LDBoolean
LDUserSetName(struct LDUser *const user, const char *const name)
void
LDUserSetPrivateAttributes(
struct LDUser *const user, struct LDJSON *const privateAttributes)
LDBoolean
LDUserSetSecondary(struct LDUser *const user, const char *const secondary)
SEE ALSO
AUTHOR
Miklos Tirpak, <[email protected]>
COPYRIGHT AND LICENSE
Copyright (C) 2022 by EMnify
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.32.1 or, at
your option, any later version of Perl 5 you may have available.