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, <miklos.tirpak@emnify.com>

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.