diff options
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/sdk/src/common/random.h')
-rw-r--r-- | src/jaegertracing/opentelemetry-cpp/sdk/src/common/random.h | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/sdk/src/common/random.h b/src/jaegertracing/opentelemetry-cpp/sdk/src/common/random.h new file mode 100644 index 000000000..ecd6dabc1 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/sdk/src/common/random.h @@ -0,0 +1,41 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once + +#include "opentelemetry/nostd/span.h" +#include "opentelemetry/version.h" +#include "src/common/fast_random_number_generator.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace common +{ +/** + * Utility methods for creating random data, based on a seeded thread-local + * number generator. + */ +class Random +{ +public: + /** + * @return an unsigned 64 bit random number + */ + static uint64_t GenerateRandom64() noexcept; + /** + * Fill the passed span with random bytes. + * + * @param buffer A span of bytes. + */ + static void GenerateRandomBuffer(opentelemetry::nostd::span<uint8_t> buffer) noexcept; + +private: + /** + * @return a seeded thread-local random number generator. + */ + static FastRandomNumberGenerator &GetRandomNumberGenerator() noexcept; +}; +} // namespace common +} // namespace sdk +OPENTELEMETRY_END_NAMESPACE |