Skip to content

Commit 5927a67

Browse files
committed
Refresh code from PR #2518, to fix review comments.
1 parent ca68022 commit 5927a67

File tree

3 files changed

+40
-29
lines changed

3 files changed

+40
-29
lines changed

sdk/include/opentelemetry/sdk/configuration/document_node.h

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -105,17 +105,24 @@ class PropertiesNodeConstIteratorImpl
105105
class DocumentNodeConstIterator
106106
{
107107
public:
108-
DocumentNodeConstIterator(DocumentNodeConstIteratorImpl *impl) : impl_(impl) {}
108+
DocumentNodeConstIterator(std::unique_ptr<DocumentNodeConstIteratorImpl> impl)
109+
: impl_(std::move(impl))
110+
{}
109111
DocumentNodeConstIterator(DocumentNodeConstIterator &&) = default;
110-
DocumentNodeConstIterator(const DocumentNodeConstIterator &) = default;
112+
DocumentNodeConstIterator(const DocumentNodeConstIterator &) = delete;
111113
DocumentNodeConstIterator &operator=(DocumentNodeConstIterator &&) = default;
112-
DocumentNodeConstIterator &operator=(const DocumentNodeConstIterator &other) = default;
114+
DocumentNodeConstIterator &operator=(const DocumentNodeConstIterator &other) = delete;
115+
~DocumentNodeConstIterator() = default;
113116

114-
~DocumentNodeConstIterator() { delete impl_; }
115-
116-
bool operator==(const DocumentNodeConstIterator &rhs) const { return (impl_->Equal(rhs.impl_)); }
117+
bool operator==(const DocumentNodeConstIterator &rhs) const
118+
{
119+
return (impl_->Equal(rhs.impl_.get()));
120+
}
117121

118-
bool operator!=(const DocumentNodeConstIterator &rhs) const { return (!impl_->Equal(rhs.impl_)); }
122+
bool operator!=(const DocumentNodeConstIterator &rhs) const
123+
{
124+
return (!impl_->Equal(rhs.impl_.get()));
125+
}
119126

120127
std::unique_ptr<DocumentNode> operator*() const { return impl_->Item(); }
121128

@@ -126,27 +133,29 @@ class DocumentNodeConstIterator
126133
}
127134

128135
private:
129-
DocumentNodeConstIteratorImpl *impl_;
136+
std::unique_ptr<DocumentNodeConstIteratorImpl> impl_;
130137
};
131138

132139
class PropertiesNodeConstIterator
133140
{
134141
public:
135-
PropertiesNodeConstIterator(PropertiesNodeConstIteratorImpl *impl) : impl_(impl) {}
142+
PropertiesNodeConstIterator(std::unique_ptr<PropertiesNodeConstIteratorImpl> impl)
143+
: impl_(std::move(impl))
144+
{}
136145
PropertiesNodeConstIterator(PropertiesNodeConstIterator &&) = default;
137-
PropertiesNodeConstIterator(const PropertiesNodeConstIterator &) = default;
146+
PropertiesNodeConstIterator(const PropertiesNodeConstIterator &) = delete;
138147
PropertiesNodeConstIterator &operator=(PropertiesNodeConstIterator &&) = default;
139-
PropertiesNodeConstIterator &operator=(const PropertiesNodeConstIterator &other) = default;
140-
~PropertiesNodeConstIterator() { delete impl_; }
148+
PropertiesNodeConstIterator &operator=(const PropertiesNodeConstIterator &other) = delete;
149+
~PropertiesNodeConstIterator() = default;
141150

142151
bool operator==(const PropertiesNodeConstIterator &rhs) const
143152
{
144-
return (impl_->Equal(rhs.impl_));
153+
return (impl_->Equal(rhs.impl_.get()));
145154
}
146155

147156
bool operator!=(const PropertiesNodeConstIterator &rhs) const
148157
{
149-
return (!impl_->Equal(rhs.impl_));
158+
return (!impl_->Equal(rhs.impl_.get()));
150159
}
151160

152161
std::string Name() const { return impl_->Name(); }
@@ -159,7 +168,7 @@ class PropertiesNodeConstIterator
159168
}
160169

161170
private:
162-
PropertiesNodeConstIteratorImpl *impl_;
171+
std::unique_ptr<PropertiesNodeConstIteratorImpl> impl_;
163172
};
164173

165174
} // namespace configuration

sdk/src/configuration/ryml_document_node.cc

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
#include <ostream>
77
#include <ryml.hpp>
88
#include <string>
9+
#include <utility>
910

1011
#include "opentelemetry/sdk/common/global_log_handler.h"
1112
#include "opentelemetry/sdk/configuration/document_node.h"
@@ -363,15 +364,20 @@ DocumentNodeConstIterator RymlDocumentNode::begin() const
363364
}
364365
#endif // WITH_DEBUG_NODE
365366

366-
return DocumentNodeConstIterator(new RymlDocumentNodeConstIteratorImpl(node_, 0, depth_));
367+
auto impl = std::unique_ptr<DocumentNodeConstIteratorImpl>(
368+
new RymlDocumentNodeConstIteratorImpl(node_, 0, depth_));
369+
370+
return DocumentNodeConstIterator(std::move(impl));
367371
}
368372

369373
DocumentNodeConstIterator RymlDocumentNode::end() const
370374
{
371375
OTEL_INTERNAL_LOG_DEBUG("RymlDocumentNode::end()");
372376

373-
return DocumentNodeConstIterator(
377+
auto impl = std::unique_ptr<DocumentNodeConstIteratorImpl>(
374378
new RymlDocumentNodeConstIteratorImpl(node_, node_.num_children(), depth_));
379+
380+
return DocumentNodeConstIterator(std::move(impl));
375381
}
376382

377383
size_t RymlDocumentNode::num_children() const
@@ -400,15 +406,20 @@ PropertiesNodeConstIterator RymlDocumentNode::begin_properties() const
400406
}
401407
#endif // WITH_DEBUG_NODE
402408

403-
return PropertiesNodeConstIterator(new RymlPropertiesNodeConstIteratorImpl(node_, 0, depth_));
409+
auto impl = std::unique_ptr<PropertiesNodeConstIteratorImpl>(
410+
new RymlPropertiesNodeConstIteratorImpl(node_, 0, depth_));
411+
412+
return PropertiesNodeConstIterator(std::move(impl));
404413
}
405414

406415
PropertiesNodeConstIterator RymlDocumentNode::end_properties() const
407416
{
408417
OTEL_INTERNAL_LOG_DEBUG("RymlDocumentNode::end_properties()");
409418

410-
return PropertiesNodeConstIterator(
419+
auto impl = std::unique_ptr<PropertiesNodeConstIteratorImpl>(
411420
new RymlPropertiesNodeConstIteratorImpl(node_, node_.num_children(), depth_));
421+
422+
return PropertiesNodeConstIterator(std::move(impl));
412423
}
413424

414425
RymlDocumentNodeConstIteratorImpl::RymlDocumentNodeConstIteratorImpl(ryml::ConstNodeRef parent,

sdk/src/configuration/yaml_configuration_parser.cc

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,13 @@ std::unique_ptr<Configuration> YamlConfigurationParser::ParseFile(const std::str
5757
return conf;
5858
}
5959

60-
static std::unique_ptr<Document> RymlParse(const std::string &source, const std::string &content)
61-
{
62-
std::unique_ptr<Document> doc;
63-
64-
doc = RymlDocument::Parse(source, content);
65-
66-
return doc;
67-
}
68-
6960
std::unique_ptr<Configuration> YamlConfigurationParser::ParseString(const std::string &source,
7061
const std::string &content)
7162
{
7263
std::unique_ptr<Document> doc;
7364
std::unique_ptr<Configuration> config;
7465

75-
doc = RymlParse(source, content);
66+
doc = RymlDocument::Parse(source, content);
7667

7768
try
7869
{

0 commit comments

Comments
 (0)