NVIDIA DeepStream SDK API Reference

9.2 Release
9.2/includes/opentelemetry/sdk/configuration/document_node.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 <memory>
7 #include <string>
8 
9 #include "opentelemetry/version.h"
10 
12 namespace sdk
13 {
14 namespace configuration
15 {
16 
17 class DocumentNodeConstIterator;
18 class PropertiesNodeConstIterator;
19 
20 class DocumentNode
21 {
22 public:
23  // FIXME: proper sizing
24  static constexpr std::size_t MAX_NODE_DEPTH = 100;
25 
26  DocumentNode() = default;
27  DocumentNode(DocumentNode &&) = default;
28  DocumentNode(const DocumentNode &) = default;
29  DocumentNode &operator=(DocumentNode &&) = default;
30  DocumentNode &operator=(const DocumentNode &other) = default;
31  virtual ~DocumentNode() = default;
32 
33  virtual std::string Key() const = 0;
34 
35  virtual bool AsBoolean() const = 0;
36  virtual std::size_t AsInteger() const = 0;
37  virtual double AsDouble() const = 0;
38  virtual std::string AsString() const = 0;
39 
40  virtual std::unique_ptr<DocumentNode> GetRequiredChildNode(const std::string &name) const = 0;
41  virtual std::unique_ptr<DocumentNode> GetChildNode(const std::string &name) const = 0;
42 
43  virtual bool GetRequiredBoolean(const std::string &name) const = 0;
44  virtual bool GetBoolean(const std::string &name, bool default_value) const = 0;
45 
46  virtual std::size_t GetRequiredInteger(const std::string &name) const = 0;
47  virtual std::size_t GetInteger(const std::string &name, std::size_t default_value) const = 0;
48 
49  virtual double GetRequiredDouble(const std::string &name) const = 0;
50  virtual double GetDouble(const std::string &name, double default_value) const = 0;
51 
52  virtual std::string GetRequiredString(const std::string &name) const = 0;
53  virtual std::string GetString(const std::string &name,
54  const std::string &default_value) const = 0;
55 
56  virtual DocumentNodeConstIterator begin() const = 0;
57  virtual DocumentNodeConstIterator end() const = 0;
58 
59  virtual std::size_t num_children() const = 0;
60  virtual std::unique_ptr<DocumentNode> GetChild(std::size_t index) const = 0;
61 
62  virtual PropertiesNodeConstIterator begin_properties() const = 0;
63  virtual PropertiesNodeConstIterator end_properties() const = 0;
64 
65 protected:
66  std::string DoSubstitution(const std::string &text) const;
67  std::string DoOneSubstitution(const std::string &text) const;
68 
69  bool BooleanFromString(const std::string &value) const;
70  std::size_t IntegerFromString(const std::string &value) const;
71  double DoubleFromString(const std::string &value) const;
72 };
73 
74 class DocumentNodeConstIteratorImpl
75 {
76 public:
82  virtual ~DocumentNodeConstIteratorImpl() = default;
83 
84  virtual void Next() = 0;
85  virtual std::unique_ptr<DocumentNode> Item() const = 0;
86  virtual bool Equal(const DocumentNodeConstIteratorImpl *rhs) const = 0;
87 };
88 
89 class PropertiesNodeConstIteratorImpl
90 {
91 public:
97  default;
98  virtual ~PropertiesNodeConstIteratorImpl() = default;
99 
100  virtual void Next() = 0;
101  virtual std::string Name() const = 0;
102  virtual std::unique_ptr<DocumentNode> Value() const = 0;
103  virtual bool Equal(const PropertiesNodeConstIteratorImpl *rhs) const = 0;
104 };
105 
106 class DocumentNodeConstIterator
107 {
108 public:
109  DocumentNodeConstIterator(std::unique_ptr<DocumentNodeConstIteratorImpl> impl)
110  : impl_(std::move(impl))
111  {}
116  ~DocumentNodeConstIterator() = default;
117 
118  bool operator==(const DocumentNodeConstIterator &rhs) const
119  {
120  return (impl_->Equal(rhs.impl_.get()));
121  }
122 
123  bool operator!=(const DocumentNodeConstIterator &rhs) const
124  {
125  return (!impl_->Equal(rhs.impl_.get()));
126  }
127 
128  std::unique_ptr<DocumentNode> operator*() const { return impl_->Item(); }
129 
131  {
132  impl_->Next();
133  return *this;
134  }
135 
136 private:
137  std::unique_ptr<DocumentNodeConstIteratorImpl> impl_;
138 };
139 
140 class PropertiesNodeConstIterator
141 {
142 public:
143  PropertiesNodeConstIterator(std::unique_ptr<PropertiesNodeConstIteratorImpl> impl)
144  : impl_(std::move(impl))
145  {}
150  ~PropertiesNodeConstIterator() = default;
151 
153  {
154  return (impl_->Equal(rhs.impl_.get()));
155  }
156 
158  {
159  return (!impl_->Equal(rhs.impl_.get()));
160  }
161 
162  std::string Name() const { return impl_->Name(); }
163  std::unique_ptr<DocumentNode> Value() const { return impl_->Value(); }
164 
166  {
167  impl_->Next();
168  return *this;
169  }
170 
171 private:
172  std::unique_ptr<PropertiesNodeConstIteratorImpl> impl_;
173 };
174 
175 } // namespace configuration
176 } // namespace sdk
sdk::configuration::PropertiesNodeConstIteratorImpl::~PropertiesNodeConstIteratorImpl
virtual ~PropertiesNodeConstIteratorImpl()=default
sdk::configuration::PropertiesNodeConstIterator::operator++
PropertiesNodeConstIterator & operator++()
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:165
sdk::configuration::DocumentNode::begin
virtual DocumentNodeConstIterator begin() const =0
sdk::configuration::PropertiesNodeConstIterator::operator!=
bool operator!=(const PropertiesNodeConstIterator &rhs) const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:157
sdk::configuration::DocumentNode::AsDouble
virtual double AsDouble() const =0
sdk::configuration::DocumentNode::MAX_NODE_DEPTH
static constexpr std::size_t MAX_NODE_DEPTH
Definition: includes/opentelemetry/sdk/configuration/document_node.h:24
sdk::configuration::DocumentNode::GetRequiredChildNode
virtual std::unique_ptr< DocumentNode > GetRequiredChildNode(const std::string &name) const =0
sdk::configuration::DocumentNode::GetRequiredString
virtual std::string GetRequiredString(const std::string &name) const =0
sdk::configuration::DocumentNodeConstIterator::operator=
DocumentNodeConstIterator & operator=(DocumentNodeConstIterator &&)=default
sdk::configuration::DocumentNode::AsString
virtual std::string AsString() const =0
sdk::configuration::PropertiesNodeConstIterator::operator=
PropertiesNodeConstIterator & operator=(PropertiesNodeConstIterator &&)=default
sdk::configuration::DocumentNodeConstIteratorImpl::operator=
DocumentNodeConstIteratorImpl & operator=(DocumentNodeConstIteratorImpl &&)=default
sdk::configuration::DocumentNode::DoubleFromString
double DoubleFromString(const std::string &value) const
sdk::configuration::DocumentNodeConstIterator::operator++
DocumentNodeConstIterator & operator++()
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:130
sdk::configuration::PropertiesNodeConstIteratorImpl::Value
virtual std::unique_ptr< DocumentNode > Value() const =0
sdk::configuration::DocumentNode::GetDouble
virtual double GetDouble(const std::string &name, double default_value) const =0
sdk::configuration::DocumentNode::GetRequiredInteger
virtual std::size_t GetRequiredInteger(const std::string &name) const =0
sdk::configuration::DocumentNodeConstIteratorImpl::~DocumentNodeConstIteratorImpl
virtual ~DocumentNodeConstIteratorImpl()=default
sdk::configuration::DocumentNodeConstIterator::operator!=
bool operator!=(const DocumentNodeConstIterator &rhs) const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:123
sdk::configuration::PropertiesNodeConstIteratorImpl::PropertiesNodeConstIteratorImpl
PropertiesNodeConstIteratorImpl()=default
sdk::configuration::DocumentNode::Key
virtual std::string Key() const =0
sdk::configuration::DocumentNodeConstIteratorImpl::Next
virtual void Next()=0
sdk::configuration::PropertiesNodeConstIterator
Definition: includes/opentelemetry/sdk/configuration/document_node.h:140
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
sdk::configuration::PropertiesNodeConstIteratorImpl::Equal
virtual bool Equal(const PropertiesNodeConstIteratorImpl *rhs) const =0
sdk::configuration::PropertiesNodeConstIterator::operator==
bool operator==(const PropertiesNodeConstIterator &rhs) const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:152
sdk::configuration::DocumentNode::begin_properties
virtual PropertiesNodeConstIterator begin_properties() const =0
sdk::configuration::DocumentNode::end
virtual DocumentNodeConstIterator end() const =0
sdk::configuration::DocumentNode::BooleanFromString
bool BooleanFromString(const std::string &value) const
sdk::configuration::DocumentNode::end_properties
virtual PropertiesNodeConstIterator end_properties() const =0
sdk::configuration::DocumentNode::GetChild
virtual std::unique_ptr< DocumentNode > GetChild(std::size_t index) const =0
sdk::configuration::DocumentNode::GetString
virtual std::string GetString(const std::string &name, const std::string &default_value) const =0
sdk::configuration::DocumentNode::num_children
virtual std::size_t num_children() const =0
sdk::configuration::DocumentNode::DoSubstitution
std::string DoSubstitution(const std::string &text) const
sdk::configuration::DocumentNode::operator=
DocumentNode & operator=(DocumentNode &&)=default
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk::configuration::DocumentNode::GetChildNode
virtual std::unique_ptr< DocumentNode > GetChildNode(const std::string &name) const =0
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
sdk::configuration::DocumentNodeConstIteratorImpl::DocumentNodeConstIteratorImpl
DocumentNodeConstIteratorImpl()=default
sdk::configuration::DocumentNode::GetRequiredDouble
virtual double GetRequiredDouble(const std::string &name) const =0
sdk::configuration::DocumentNode::DoOneSubstitution
std::string DoOneSubstitution(const std::string &text) const
sdk::configuration::PropertiesNodeConstIterator::~PropertiesNodeConstIterator
~PropertiesNodeConstIterator()=default
sdk::configuration::PropertiesNodeConstIterator::Name
std::string Name() const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:162
sdk::configuration::DocumentNodeConstIterator
Definition: includes/opentelemetry/sdk/configuration/document_node.h:106
sdk::configuration::DocumentNodeConstIterator::DocumentNodeConstIterator
DocumentNodeConstIterator(std::unique_ptr< DocumentNodeConstIteratorImpl > impl)
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:109
sdk::configuration::DocumentNodeConstIteratorImpl::Equal
virtual bool Equal(const DocumentNodeConstIteratorImpl *rhs) const =0
sdk::configuration::DocumentNodeConstIterator::operator==
bool operator==(const DocumentNodeConstIterator &rhs) const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:118
std
Extensions to the C++ standard library.
Definition: includes/opentelemetry/nostd/string_view.h:212
sdk::configuration::PropertiesNodeConstIterator::Value
std::unique_ptr< DocumentNode > Value() const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:163
sdk::configuration::DocumentNodeConstIteratorImpl::Item
virtual std::unique_ptr< DocumentNode > Item() const =0
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
sdk::configuration::DocumentNode::DocumentNode
DocumentNode()=default
sdk::configuration::DocumentNode::GetRequiredBoolean
virtual bool GetRequiredBoolean(const std::string &name) const =0
sdk::configuration::DocumentNode::IntegerFromString
std::size_t IntegerFromString(const std::string &value) const
sdk::configuration::DocumentNodeConstIterator::~DocumentNodeConstIterator
~DocumentNodeConstIterator()=default
sdk::configuration::DocumentNode::AsInteger
virtual std::size_t AsInteger() const =0
sdk::configuration::PropertiesNodeConstIterator::PropertiesNodeConstIterator
PropertiesNodeConstIterator(std::unique_ptr< PropertiesNodeConstIteratorImpl > impl)
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:143
sdk::configuration::PropertiesNodeConstIteratorImpl::operator=
PropertiesNodeConstIteratorImpl & operator=(PropertiesNodeConstIteratorImpl &&)=default
sdk::configuration::DocumentNodeConstIterator::operator*
std::unique_ptr< DocumentNode > operator*() const
Definition: 9.2/includes/opentelemetry/sdk/configuration/document_node.h:128
sdk::configuration::DocumentNode::GetInteger
virtual std::size_t GetInteger(const std::string &name, std::size_t default_value) const =0
sdk::configuration::PropertiesNodeConstIteratorImpl::Next
virtual void Next()=0
sdk::configuration::PropertiesNodeConstIteratorImpl::Name
virtual std::string Name() const =0
sdk::configuration::DocumentNode::~DocumentNode
virtual ~DocumentNode()=default
sdk::configuration::DocumentNode::AsBoolean
virtual bool AsBoolean() const =0
sdk::configuration::DocumentNode::GetBoolean
virtual bool GetBoolean(const std::string &name, bool default_value) const =0