Program Listing for File instrumentation_library.h
↰ Return to documentation for file (/home/docs/checkouts/readthedocs.org/user_builds/opentelemetry-cpp/checkouts/v1.3.0/sdk/include/opentelemetry/sdk/instrumentationlibrary/instrumentation_library.h
)
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <string>
#include "opentelemetry/nostd/string_view.h"
#include "opentelemetry/nostd/unique_ptr.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace instrumentationlibrary
{
class InstrumentationLibrary
{
public:
InstrumentationLibrary(const InstrumentationLibrary &) = default;
static nostd::unique_ptr<InstrumentationLibrary> Create(nostd::string_view name,
nostd::string_view version = "",
nostd::string_view schema_url = "")
{
return nostd::unique_ptr<InstrumentationLibrary>(
new InstrumentationLibrary{name, version, schema_url});
}
bool operator==(const InstrumentationLibrary &other) const
{
return equal(other.name_, other.version_, other.schema_url_);
}
bool equal(const nostd::string_view name,
const nostd::string_view version,
const nostd::string_view schema_url = "") const
{
return this->name_ == name && this->version_ == version && this->schema_url_ == schema_url;
}
const std::string &GetName() const { return name_; }
const std::string &GetVersion() const { return version_; }
const std::string &GetSchemaURL() const { return schema_url_; }
private:
InstrumentationLibrary(nostd::string_view name,
nostd::string_view version,
nostd::string_view schema_url = "")
: name_(name), version_(version), schema_url_(schema_url)
{}
private:
std::string name_;
std::string version_;
std::string schema_url_;
};
} // namespace instrumentationlibrary
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE