Program Listing for File id_generator.h

Return to documentation for file (/tmp/B.puc0r6hi/BUILD/opentelemetry-cpp-1.27.0-build/opentelemetry-cpp-1.27.0/sdk/include/opentelemetry/sdk/trace/id_generator.h)

// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "opentelemetry/trace/span_id.h"
#include "opentelemetry/trace/trace_id.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace trace
{

class IdGenerator
{
public:
  IdGenerator(bool is_random) : is_random_(is_random) {}

  IdGenerator(const IdGenerator &)            = delete;
  IdGenerator(IdGenerator &&)                 = delete;
  IdGenerator &operator=(const IdGenerator &) = delete;
  IdGenerator &operator=(IdGenerator &&)      = delete;

  virtual ~IdGenerator() = default;

  virtual opentelemetry::trace::SpanId GenerateSpanId() noexcept = 0;

  virtual opentelemetry::trace::TraceId GenerateTraceId() noexcept = 0;

  bool IsRandom() const { return is_random_; }

private:
  bool is_random_;
};
}  // namespace trace

}  // namespace sdk
OPENTELEMETRY_END_NAMESPACE