C Client-Side SDK
LaunchDarkly SDK
api.hpp
Go to the documentation of this file.
1 
6 #pragma once
7 
8 #include <launchdarkly/api.h>
9 
10 class LD_EXPORT(LDClientCPP) {
11  public:
17  static LDClientCPP *Get();
18 
40  static LDClientCPP *Init(struct LDConfig *config,
41  struct LDUser *user,
42  unsigned int maxwaitmilli);
43 
45  bool isInitialized();
46 
48  bool awaitInitialized(unsigned int timeoutmilli);
49 
51  bool boolVariation(const std::string &flagKey, bool fallback);
52 
55  int intVariation(const std::string &flagKey, int fallback);
56 
58  double doubleVariation(const std::string &flagKey, double fallback);
59 
61  std::string stringVariation(const std::string &flagKey, const std::string &fallback);
62 
64  char *stringVariation(const std::string &flagKey,
65  const std::string &fallback, char *resultBuffer, size_t resultBufferSize);
66 
70  struct LDJSON *JSONVariation(const std::string &flagKey, const struct LDJSON *fallback);
71 
73  bool boolVariationDetail(const std::string &flagKey, bool fallback, LDVariationDetails *details);
74 
76  int intVariationDetail(const std::string &flagKey, int fallback, LDVariationDetails *details);
77 
79  double doubleVariationDetail(const std::string &flagKey, double fallback, LDVariationDetails *details);
80 
82  std::string stringVariationDetail(const std::string &flagKey,
83  const std::string &fallback, LDVariationDetails *details);
84 
87  char *stringVariationDetail(const std::string &flagKey, const std::string &fallback, char *resultBuffer,
88  size_t resultBufferSize, LDVariationDetails *details);
89 
91  struct LDJSON *JSONVariationDetail(const std::string &flagKey, const struct LDJSON *fallback,
92  LDVariationDetails *details);
93 
95  struct LDJSON *getAllFlags();
96 
98  void setOffline();
99 
101  void setOnline();
102 
104  bool isOffline();
105 
107  void setBackground(bool background);
108 
110  std::string saveFlags();
111 
113  void restoreFlags(const std::string &flags);
114 
120  void identify(LDUser *user);
121 
123  void alias(const struct LDUser *currentUser, const struct LDUser *previousUser);
124 
126  void track(const std::string &name);
127 
129  void track(const std::string &name, struct LDJSON *data);
130 
132  void track(const std::string &name, struct LDJSON *data, double metric);
133 
138  void flush();
139 
144  void close();
145 
147  bool registerFeatureFlagListener(const std::string &name, LDlistenerfn fn);
148 
150  void unregisterFeatureFlagListener(const std::string &name, LDlistenerfn fn);
151  private:
152  struct LDClient *client;
153 };
LDUser
An opaque user object.
LDVariationDetails
To use detail variations you must provide a pointer to an LDVariationDetails struct that will be fill...
Definition: client.h:41
LDClientCPP
Definition: api.hpp:10
LDlistenerfn
void(* LDlistenerfn)(const char *const flagKey, const int status)
Feature flag listener callback type. Callbacks are not reentrant safe.
Definition: client.h:303
api.h
Public API. Include this for every public operation.