AlexaClientSDK  1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
Namespaces | Macros | Functions | Variables
UUIDGeneration.cpp File Reference
#include <random>
#include <chrono>
#include <sstream>
#include <string>
#include <iomanip>
#include <cmath>
#include <mutex>
#include <climits>
#include <algorithm>
#include <functional>
#include <list>
#include "AVSCommon/Utils/Logger/Logger.h"
#include "AVSCommon/Utils/UUIDGeneration/UUIDGeneration.h"
Include dependency graph for UUIDGeneration.cpp:

Namespaces

 alexaClientSDK
 Whether or not curl logs should be emitted.
 
 alexaClientSDK::avsCommon
 
 alexaClientSDK::avsCommon::utils
 
 alexaClientSDK::avsCommon::utils::uuidGeneration
 

Macros

#define LX(event)   alexaClientSDK::avsCommon::utils::logger::LogEntry(TAG, event)
 

Functions

static const std::string alexaClientSDK::avsCommon::utils::uuidGeneration::TAG ("UUIDGeneration")
 String to identify log entries originating from this file. More...
 
static const std::string alexaClientSDK::avsCommon::utils::uuidGeneration::SEPARATOR ("-")
 Separator used between UUID fields. More...
 
void alexaClientSDK::avsCommon::utils::uuidGeneration::setEntropyReader (std::function< double(void)> func)
 
void alexaClientSDK::avsCommon::utils::uuidGeneration::setSalt (const std::string &newSalt)
 
void alexaClientSDK::avsCommon::utils::uuidGeneration::addSeeds (const std::vector< uint32_t > &seeds)
 
static const std::string alexaClientSDK::avsCommon::utils::uuidGeneration::generateHexWithReplacement (std::independent_bits_engine< std::mt19937, CHAR_BIT, uint32_t > &ibe, unsigned int numDigits, uint8_t replacementBits, uint8_t numReplacementBits)
 
static const std::string alexaClientSDK::avsCommon::utils::uuidGeneration::generateHex (std::independent_bits_engine< std::mt19937, CHAR_BIT, uint32_t > &ibe, unsigned int numDigits)
 
static void alexaClientSDK::avsCommon::utils::uuidGeneration::addDefaultSeedLocked ()
 
const std::string alexaClientSDK::avsCommon::utils::uuidGeneration::generateUUID ()
 

Variables

static const uint8_t alexaClientSDK::avsCommon::utils::uuidGeneration::UUID_VERSION_VALUE = 4 << 4
 The UUID version (Version 4), shifted into the correct position in the byte. More...
 
static const size_t alexaClientSDK::avsCommon::utils::uuidGeneration::UUID_VARIANT_VALUE = 2 << 6
 The UUID variant (Variant 1), shifted into the correct position in the byte. More...
 
static const size_t alexaClientSDK::avsCommon::utils::uuidGeneration::MAX_NUM_REPLACEMENT_BITS = CHAR_BIT
 Number of bits in the replacement value. More...
 
static const size_t alexaClientSDK::avsCommon::utils::uuidGeneration::BITS_IN_HEX_DIGIT = 4
 Number of bits in a hex digit. More...
 
static bool alexaClientSDK::avsCommon::utils::uuidGeneration::g_seedNeeded = true
 Indicates if next UUID should be seeded. Must not be accessed unless g_mutex is locked. More...
 
static std::mutex alexaClientSDK::avsCommon::utils::uuidGeneration::g_mutex
 Lock to avoid collisions in generationing uuid and setting seed. More...
 
static const double alexaClientSDK::avsCommon::utils::uuidGeneration::ENTROPY_THRESHOLD = 600
 Entropy Threshold for sufficient uniqueness. Value chosen by experiment. More...
 
static const size_t alexaClientSDK::avsCommon::utils::uuidGeneration::MAX_SEEDS_POOL_SIZE = 1024
 extra seeds More...
 
static std::list< uint32_t > alexaClientSDK::avsCommon::utils::uuidGeneration::seedsPool
 pool of seeds More...
 
static uint64_t alexaClientSDK::avsCommon::utils::uuidGeneration::lastInvokeTime
 last time generateUUID was invoked More...
 
static const int alexaClientSDK::avsCommon::utils::uuidGeneration::ENTROPY_REPEAT_THRESHOLD = 16
 Catch for platforms where entropy is a hard coded value. Value chosen by experiment. More...
 
static std::function< double(void)> alexaClientSDK::avsCommon::utils::uuidGeneration::readEntropyFunc
 The default read entropy function. This can be customized using UUIDGeneration::setEntropyReader(). More...
 

Macro Definition Documentation

◆ LX

#define LX (   event)    alexaClientSDK::avsCommon::utils::logger::LogEntry(TAG, event)

Create a LogEntry using this file's TAG and the specified event string.

Parameters
Theevent string for this LogEntry.

AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0