]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/sdk/src/logs/logger_context.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / sdk / src / logs / logger_context.cc
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3
4 #ifdef ENABLE_LOGS_PREVIEW
5
6 # include "opentelemetry/sdk/logs/logger_context.h"
7 # include "opentelemetry/sdk/logs/multi_log_processor.h"
8
9 # include <memory>
10 # include <vector>
11
12 OPENTELEMETRY_BEGIN_NAMESPACE
13 namespace sdk
14 {
15 namespace logs
16 {
17
18 LoggerContext::LoggerContext(std::vector<std::unique_ptr<LogProcessor>> &&processors,
19 opentelemetry::sdk::resource::Resource resource) noexcept
20 : resource_(resource),
21 processor_(std::unique_ptr<LogProcessor>(new MultiLogProcessor(std::move(processors))))
22 {}
23
24 void LoggerContext::AddProcessor(std::unique_ptr<LogProcessor> processor) noexcept
25 {
26 auto multi_processor = static_cast<MultiLogProcessor *>(processor_.get());
27 multi_processor->AddProcessor(std::move(processor));
28 }
29
30 LogProcessor &LoggerContext::GetProcessor() const noexcept
31 {
32 return *processor_;
33 }
34
35 const opentelemetry::sdk::resource::Resource &LoggerContext::GetResource() const noexcept
36 {
37 return resource_;
38 }
39
40 bool LoggerContext::ForceFlush(std::chrono::microseconds timeout) noexcept
41 {
42 return processor_->ForceFlush(timeout);
43 }
44
45 bool LoggerContext::Shutdown(std::chrono::microseconds timeout) noexcept
46 {
47 return processor_->ForceFlush(timeout);
48 }
49
50 } // namespace logs
51 } // namespace sdk
52
53 OPENTELEMETRY_END_NAMESPACE
54 #endif