NVIDIA DeepStream SDK API Reference

9.2 Release
9.2/includes/opentelemetry/logs/event_logger.h
Go to the documentation of this file.
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #pragma once
5 
6 #include "opentelemetry/logs/log_record.h"
7 #include "opentelemetry/logs/logger.h"
8 #include "opentelemetry/logs/logger_type_traits.h"
9 #include "opentelemetry/nostd/shared_ptr.h"
10 #include "opentelemetry/nostd/string_view.h"
11 #include "opentelemetry/nostd/unique_ptr.h"
12 #include "opentelemetry/version.h"
13 
15 namespace logs
16 {
17 #if OPENTELEMETRY_ABI_VERSION_NO < 2
18 
21 class OPENTELEMETRY_DEPRECATED EventLogger
22 {
23 public:
24  virtual ~EventLogger() = default;
25 
26  /* Returns the name of the logger */
27  virtual const nostd::string_view GetName() noexcept = 0;
28 
29  /* Returns the delegate logger of this event logger */
30  virtual nostd::shared_ptr<Logger> GetDelegateLogger() noexcept = 0;
31 
38  virtual void EmitEvent(nostd::string_view event_name,
39  nostd::unique_ptr<LogRecord> &&log_record) noexcept = 0;
40 
59  template <class... ArgumentType>
60  void EmitEvent(nostd::string_view event_name, ArgumentType &&...args)
61  {
62  nostd::shared_ptr<Logger> delegate_logger = GetDelegateLogger();
63  if (!delegate_logger)
64  {
65  return;
66  }
67  nostd::unique_ptr<LogRecord> log_record = delegate_logger->CreateLogRecord();
68 
69  IgnoreTraitResult(detail::LogRecordSetterTrait<typename std::decay<ArgumentType>::type>::Set(
70  log_record.get(), std::forward<ArgumentType>(args))...);
71 
72  EmitEvent(event_name, std::move(log_record));
73  }
74 
75 private:
76  template <class... ValueType>
77  void IgnoreTraitResult(ValueType &&...)
78  {}
79 };
80 #endif
81 } // namespace logs
nostd::unique_ptr
std::unique_ptr< _Types... > unique_ptr
Definition: includes/opentelemetry/std/unique_ptr.h:19
nostd
Definition: includes/opentelemetry/nostd/function_ref.h:14
nostd::unique_ptr
Provide a simplified port of std::unique_ptr that has ABI stability.
Definition: includes/opentelemetry/nostd/unique_ptr.h:45
nostd::shared_ptr
std::shared_ptr< _Types... > shared_ptr
Definition: includes/opentelemetry/std/shared_ptr.h:19
logs
Definition: includes/opentelemetry/logs/event_id.h:13
nostd::shared_ptr
Provide a type-erased version of std::shared_ptr that has ABI stability.
Definition: includes/opentelemetry/nostd/shared_ptr.h:28
nostd::unique_ptr::get
pointer get() const noexcept
Definition: includes/opentelemetry/nostd/unique_ptr.h:107
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
logs::detail::LogRecordSetterTrait
Definition: includes/opentelemetry/logs/logger_type_traits.h:30
sdk::metrics::ValueType
nostd::variant< int64_t, double > ValueType
Definition: includes/opentelemetry/sdk/metrics/data/point_data.h:19
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
absl::move
constexpr absl::OTABSL_OPTION_NAMESPACE_NAME::remove_reference_t< T > && move(T &&t) noexcept
Definition: includes/opentelemetry/nostd/internal/absl/utility/utility.h:199
Logger
Definition: sources/gst-plugins/gst-nvdsvideotemplate/ds-sparse4d/infer/engine_builder.h:50
OPENTELEMETRY_DEPRECATED
#define OPENTELEMETRY_DEPRECATED
Definition: includes/opentelemetry/common/macros.h:228
nostd::string_view
std::string_view string_view
Definition: includes/opentelemetry/std/string_view.h:18
nostd::string_view
Back port of std::string_view to work with pre-cpp-17 compilers.
Definition: includes/opentelemetry/nostd/string_view.h:37