Program Listing for File resource_detector.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/resource/resource_detector.h)

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

#pragma once

#include <string>

#include "opentelemetry/sdk/resource/resource.h"
#include "opentelemetry/version.h"

OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace resource
{

class ResourceDetector
{
public:
  ResourceDetector() = default;

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

  virtual ~ResourceDetector() = default;

  virtual Resource Detect() = 0;

protected:
  static Resource Create(const ResourceAttributes &attributes,
                         const std::string &schema_url = std::string{});
};

class OTELResourceDetector : public ResourceDetector
{
public:
  Resource Detect() noexcept override;
};

}  // namespace resource
}  // namespace sdk
OPENTELEMETRY_END_NAMESPACE