Skip to content

Commit 6a29200

Browse files
committed
Code review comments, more parser tests.
1 parent 32e408a commit 6a29200

File tree

6 files changed

+422
-35
lines changed

6 files changed

+422
-35
lines changed

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

Lines changed: 29 additions & 20 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) {}
109-
DocumentNodeConstIterator(DocumentNodeConstIterator &&) = default;
110-
DocumentNodeConstIterator(const DocumentNodeConstIterator &) = default;
111-
DocumentNodeConstIterator &operator=(DocumentNodeConstIterator &&) = default;
112-
DocumentNodeConstIterator &operator=(const DocumentNodeConstIterator &other) = default;
113-
114-
~DocumentNodeConstIterator() { delete impl_; }
115-
116-
bool operator==(const DocumentNodeConstIterator &rhs) const { return (impl_->Equal(rhs.impl_)); }
108+
DocumentNodeConstIterator(std::unique_ptr<DocumentNodeConstIteratorImpl> impl)
109+
: impl_(std::move(impl))
110+
{}
111+
DocumentNodeConstIterator(DocumentNodeConstIterator &&) = delete;
112+
DocumentNodeConstIterator(const DocumentNodeConstIterator &) = delete;
113+
DocumentNodeConstIterator &operator=(DocumentNodeConstIterator &&) = delete;
114+
DocumentNodeConstIterator &operator=(const DocumentNodeConstIterator &other) = delete;
115+
~DocumentNodeConstIterator() = default;
116+
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) {}
136-
PropertiesNodeConstIterator(PropertiesNodeConstIterator &&) = default;
137-
PropertiesNodeConstIterator(const PropertiesNodeConstIterator &) = default;
138-
PropertiesNodeConstIterator &operator=(PropertiesNodeConstIterator &&) = default;
139-
PropertiesNodeConstIterator &operator=(const PropertiesNodeConstIterator &other) = default;
140-
~PropertiesNodeConstIterator() { delete impl_; }
142+
PropertiesNodeConstIterator(std::unique_ptr<PropertiesNodeConstIteratorImpl> impl)
143+
: impl_(std::move(impl))
144+
{}
145+
PropertiesNodeConstIterator(PropertiesNodeConstIterator &&) = delete;
146+
PropertiesNodeConstIterator(const PropertiesNodeConstIterator &) = delete;
147+
PropertiesNodeConstIterator &operator=(PropertiesNodeConstIterator &&) = delete;
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/include/opentelemetry/sdk/configuration/instrument_type.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ namespace configuration
1717
// YAML-NODE: InstrumentType
1818
enum class InstrumentType : std::uint8_t
1919
{
20+
none, /* Represents a null entry */
2021
counter,
2122
histogram,
2223
observable_counter,

sdk/src/configuration/configuration_parser.cc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,11 @@ static std::unique_ptr<MetricReaderConfiguration> ParseMetricReaderConfiguration
771771

772772
static InstrumentType ParseInstrumentType(const std::string &name)
773773
{
774+
if (name == "")
775+
{
776+
return InstrumentType::none;
777+
}
778+
774779
if (name == "counter")
775780
{
776781
return InstrumentType::counter;

sdk/src/configuration/ryml_document_node.cc

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,15 +363,20 @@ DocumentNodeConstIterator RymlDocumentNode::begin() const
363363
}
364364
#endif // WITH_DEBUG_NODE
365365

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

369372
DocumentNodeConstIterator RymlDocumentNode::end() const
370373
{
371374
OTEL_INTERNAL_LOG_DEBUG("RymlDocumentNode::end()");
372375

373-
return DocumentNodeConstIterator(
376+
auto impl = std::unique_ptr<DocumentNodeConstIteratorImpl>(
374377
new RymlDocumentNodeConstIteratorImpl(node_, node_.num_children(), depth_));
378+
379+
return DocumentNodeConstIterator(std::move(impl));
375380
}
376381

377382
size_t RymlDocumentNode::num_children() const
@@ -400,15 +405,20 @@ PropertiesNodeConstIterator RymlDocumentNode::begin_properties() const
400405
}
401406
#endif // WITH_DEBUG_NODE
402407

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

406414
PropertiesNodeConstIterator RymlDocumentNode::end_properties() const
407415
{
408416
OTEL_INTERNAL_LOG_DEBUG("RymlDocumentNode::end_properties()");
409417

410-
return PropertiesNodeConstIterator(
418+
auto impl = std::unique_ptr<PropertiesNodeConstIteratorImpl>(
411419
new RymlPropertiesNodeConstIteratorImpl(node_, node_.num_children(), depth_));
420+
421+
return PropertiesNodeConstIterator(std::move(impl));
412422
}
413423

414424
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)