Program Listing for File read_write_log_record.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/logs/read_write_log_record.h)
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <memory>
#include <string>
#include <unordered_map>
#include "opentelemetry/common/attribute_value.h"
#include "opentelemetry/common/key_value_iterable.h"
#include "opentelemetry/common/timestamp.h"
#include "opentelemetry/logs/log_record.h"
#include "opentelemetry/logs/severity.h"
#include "opentelemetry/nostd/string_view.h"
#include "opentelemetry/sdk/common/attribute_utils.h"
#include "opentelemetry/sdk/logs/readable_log_record.h"
#include "opentelemetry/trace/span_id.h"
#include "opentelemetry/trace/trace_flags.h"
#include "opentelemetry/trace/trace_id.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace logs
{
class ReadWriteLogRecord final : public ReadableLogRecord
{
public:
ReadWriteLogRecord();
ReadWriteLogRecord(const ReadWriteLogRecord &) = delete;
ReadWriteLogRecord(ReadWriteLogRecord &&) = delete;
ReadWriteLogRecord &operator=(const ReadWriteLogRecord &) = delete;
ReadWriteLogRecord &operator=(ReadWriteLogRecord &&) = delete;
~ReadWriteLogRecord() override;
void SetTimestamp(opentelemetry::common::SystemTimestamp timestamp) noexcept override;
opentelemetry::common::SystemTimestamp GetTimestamp() const noexcept override;
void SetObservedTimestamp(opentelemetry::common::SystemTimestamp timestamp) noexcept override;
opentelemetry::common::SystemTimestamp GetObservedTimestamp() const noexcept override;
void SetSeverity(opentelemetry::logs::Severity severity) noexcept override;
opentelemetry::logs::Severity GetSeverity() const noexcept override;
void SetBody(const opentelemetry::common::AttributeValue &message) noexcept override;
const opentelemetry::sdk::common::OwnedAttributeValue &GetBody() const noexcept override;
void SetEventId(int64_t id, nostd::string_view name) noexcept override;
int64_t GetEventId() const noexcept override;
nostd::string_view GetEventName() const noexcept override;
void SetTraceId(const opentelemetry::trace::TraceId &trace_id) noexcept override;
const opentelemetry::trace::TraceId &GetTraceId() const noexcept override;
void SetSpanId(const opentelemetry::trace::SpanId &span_id) noexcept override;
const opentelemetry::trace::SpanId &GetSpanId() const noexcept override;
void SetTraceFlags(const opentelemetry::trace::TraceFlags &trace_flags) noexcept override;
const opentelemetry::trace::TraceFlags &GetTraceFlags() const noexcept override;
void SetAttribute(nostd::string_view key,
const opentelemetry::common::AttributeValue &value) noexcept override;
const std::unordered_map<std::string, opentelemetry::sdk::common::OwnedAttributeValue> &
GetAttributes() const noexcept override;
const opentelemetry::sdk::resource::Resource &GetResource() const noexcept override;
void SetResource(const opentelemetry::sdk::resource::Resource &resource) noexcept override;
const opentelemetry::sdk::instrumentationscope::InstrumentationScope &GetInstrumentationScope()
const noexcept override;
void SetInstrumentationScope(const opentelemetry::sdk::instrumentationscope::InstrumentationScope
&instrumentation_scope) noexcept override;
private:
opentelemetry::logs::Severity severity_{opentelemetry::logs::Severity::kInvalid};
const opentelemetry::sdk::resource::Resource *resource_{nullptr};
const opentelemetry::sdk::instrumentationscope::InstrumentationScope *instrumentation_scope_{
nullptr};
std::unordered_map<std::string, opentelemetry::sdk::common::OwnedAttributeValue> attributes_map_;
opentelemetry::sdk::common::OwnedAttributeValue body_;
opentelemetry::common::SystemTimestamp timestamp_;
opentelemetry::common::SystemTimestamp observed_timestamp_;
int64_t event_id_{0};
std::string event_name_;
// We do not pay for trace state when not necessary
struct TraceState
{
opentelemetry::trace::TraceId trace_id;
opentelemetry::trace::SpanId span_id;
opentelemetry::trace::TraceFlags trace_flags;
};
std::unique_ptr<TraceState> trace_state_;
};
} // namespace logs
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE