Skip to content

Commit a20b0b9

Browse files
committed
Refresh code from PR #2518, to fix review comments.
1 parent 6efd4e5 commit a20b0b9

15 files changed

+350
-9
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/version.h"
7+
8+
OPENTELEMETRY_BEGIN_NAMESPACE
9+
namespace sdk
10+
{
11+
namespace configuration
12+
{
13+
class AttributeValueConfigurationVisitor;
14+
15+
// YAML-SCHEMA: schema/resource.json
16+
// YAML-NODE: AttributeNameValue
17+
class AttributeValueConfiguration
18+
{
19+
public:
20+
AttributeValueConfiguration() = default;
21+
AttributeValueConfiguration(AttributeValueConfiguration &&) = default;
22+
AttributeValueConfiguration(const AttributeValueConfiguration &) = default;
23+
AttributeValueConfiguration &operator=(AttributeValueConfiguration &&) = default;
24+
AttributeValueConfiguration &operator=(const AttributeValueConfiguration &other) = default;
25+
virtual ~AttributeValueConfiguration() = default;
26+
27+
virtual void Accept(AttributeValueConfigurationVisitor *visitor) const = 0;
28+
};
29+
30+
} // namespace configuration
31+
} // namespace sdk
32+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/version.h"
7+
8+
OPENTELEMETRY_BEGIN_NAMESPACE
9+
namespace sdk
10+
{
11+
namespace configuration
12+
{
13+
14+
class StringAttributeValueConfiguration;
15+
class IntegerAttributeValueConfiguration;
16+
class DoubleAttributeValueConfiguration;
17+
class BooleanAttributeValueConfiguration;
18+
class StringArrayAttributeValueConfiguration;
19+
class IntegerArrayAttributeValueConfiguration;
20+
class DoubleArrayAttributeValueConfiguration;
21+
class BooleanArrayAttributeValueConfiguration;
22+
23+
class AttributeValueConfigurationVisitor
24+
{
25+
public:
26+
AttributeValueConfigurationVisitor() = default;
27+
AttributeValueConfigurationVisitor(AttributeValueConfigurationVisitor &&) = default;
28+
AttributeValueConfigurationVisitor(const AttributeValueConfigurationVisitor &) = default;
29+
AttributeValueConfigurationVisitor &operator=(AttributeValueConfigurationVisitor &&) = default;
30+
AttributeValueConfigurationVisitor &operator=(const AttributeValueConfigurationVisitor &other) =
31+
default;
32+
virtual ~AttributeValueConfigurationVisitor() = default;
33+
34+
virtual void VisitString(const StringAttributeValueConfiguration *model) = 0;
35+
virtual void VisitInteger(const IntegerAttributeValueConfiguration *model) = 0;
36+
virtual void VisitDouble(const DoubleAttributeValueConfiguration *model) = 0;
37+
virtual void VisitBoolean(const BooleanAttributeValueConfiguration *model) = 0;
38+
virtual void VisitStringArray(const StringArrayAttributeValueConfiguration *model) = 0;
39+
virtual void VisitIntegerArray(const IntegerArrayAttributeValueConfiguration *model) = 0;
40+
virtual void VisitDoubleArray(const DoubleArrayAttributeValueConfiguration *model) = 0;
41+
virtual void VisitBooleanArray(const BooleanArrayAttributeValueConfiguration *model) = 0;
42+
};
43+
44+
} // namespace configuration
45+
} // namespace sdk
46+
OPENTELEMETRY_END_NAMESPACE

sdk/include/opentelemetry/sdk/configuration/attributes_configuration.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
#pragma once
55

66
#include <map>
7+
#include <memory>
78
#include <string>
89

10+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
911
#include "opentelemetry/version.h"
1012

1113
OPENTELEMETRY_BEGIN_NAMESPACE
@@ -16,11 +18,10 @@ namespace configuration
1618

1719
// YAML-SCHEMA: schema/resource.json
1820
// YAML-NODE: AttributeNameValue
19-
// FIXME: Name/Value/Type
2021
class AttributesConfiguration
2122
{
2223
public:
23-
std::map<std::string, std::string> kv_map;
24+
std::map<std::string, std::unique_ptr<AttributeValueConfiguration>> kv_map;
2425
};
2526

2627
} // namespace configuration
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <vector>
7+
8+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
9+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/resource.json
19+
// YAML-NODE: AttributeNameValue
20+
class BooleanArrayAttributeValueConfiguration : public AttributeValueConfiguration
21+
{
22+
public:
23+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
24+
{
25+
visitor->VisitBooleanArray(this);
26+
}
27+
28+
std::vector<bool> value;
29+
};
30+
31+
} // namespace configuration
32+
} // namespace sdk
33+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
7+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
8+
#include "opentelemetry/version.h"
9+
10+
OPENTELEMETRY_BEGIN_NAMESPACE
11+
namespace sdk
12+
{
13+
namespace configuration
14+
{
15+
16+
// YAML-SCHEMA: schema/resource.json
17+
// YAML-NODE: AttributeNameValue
18+
class BooleanAttributeValueConfiguration : public AttributeValueConfiguration
19+
{
20+
public:
21+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
22+
{
23+
visitor->VisitBoolean(this);
24+
}
25+
26+
bool value;
27+
};
28+
29+
} // namespace configuration
30+
} // namespace sdk
31+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <vector>
7+
8+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
9+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/resource.json
19+
// YAML-NODE: AttributeNameValue
20+
class DoubleArrayAttributeValueConfiguration : public AttributeValueConfiguration
21+
{
22+
public:
23+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
24+
{
25+
visitor->VisitDoubleArray(this);
26+
}
27+
28+
std::vector<double> value;
29+
};
30+
31+
} // namespace configuration
32+
} // namespace sdk
33+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
7+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
8+
#include "opentelemetry/version.h"
9+
10+
OPENTELEMETRY_BEGIN_NAMESPACE
11+
namespace sdk
12+
{
13+
namespace configuration
14+
{
15+
16+
// YAML-SCHEMA: schema/resource.json
17+
// YAML-NODE: AttributeNameValue
18+
class DoubleAttributeValueConfiguration : public AttributeValueConfiguration
19+
{
20+
public:
21+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
22+
{
23+
visitor->VisitDouble(this);
24+
}
25+
26+
double value;
27+
};
28+
29+
} // namespace configuration
30+
} // namespace sdk
31+
OPENTELEMETRY_END_NAMESPACE

sdk/include/opentelemetry/sdk/configuration/detectors_configuration.h renamed to sdk/include/opentelemetry/sdk/configuration/include_exclude_configuration.h

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
#pragma once
55

6-
#include <map>
76
#include <memory>
87

98
#include "opentelemetry/sdk/configuration/string_array_configuration.h"
@@ -15,9 +14,9 @@ namespace sdk
1514
namespace configuration
1615
{
1716

18-
// YAML-SCHEMA: schema/resource.json
19-
// YAML-NODE: Detectors
20-
class DetectorsConfiguration
17+
// YAML-SCHEMA: schema/common.json
18+
// YAML-NODE: IncludeExclude
19+
class IncludeExcludeConfiguration
2120
{
2221
public:
2322
std::unique_ptr<StringArrayConfiguration> included;
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <cstddef>
7+
#include <vector>
8+
9+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
10+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
11+
#include "opentelemetry/version.h"
12+
13+
OPENTELEMETRY_BEGIN_NAMESPACE
14+
namespace sdk
15+
{
16+
namespace configuration
17+
{
18+
19+
// YAML-SCHEMA: schema/resource.json
20+
// YAML-NODE: AttributeNameValue
21+
class IntegerArrayAttributeValueConfiguration : public AttributeValueConfiguration
22+
{
23+
public:
24+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
25+
{
26+
visitor->VisitIntegerArray(this);
27+
}
28+
29+
std::vector<std::size_t> value;
30+
};
31+
32+
} // namespace configuration
33+
} // namespace sdk
34+
OPENTELEMETRY_END_NAMESPACE
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
// Copyright The OpenTelemetry Authors
2+
// SPDX-License-Identifier: Apache-2.0
3+
4+
#pragma once
5+
6+
#include <cstddef>
7+
8+
#include "opentelemetry/sdk/configuration/attribute_value_configuration.h"
9+
#include "opentelemetry/sdk/configuration/attribute_value_configuration_visitor.h"
10+
#include "opentelemetry/version.h"
11+
12+
OPENTELEMETRY_BEGIN_NAMESPACE
13+
namespace sdk
14+
{
15+
namespace configuration
16+
{
17+
18+
// YAML-SCHEMA: schema/resource.json
19+
// YAML-NODE: AttributeNameValue
20+
class IntegerAttributeValueConfiguration : public AttributeValueConfiguration
21+
{
22+
public:
23+
void Accept(AttributeValueConfigurationVisitor *visitor) const override
24+
{
25+
visitor->VisitInteger(this);
26+
}
27+
28+
std::size_t value;
29+
};
30+
31+
} // namespace configuration
32+
} // namespace sdk
33+
OPENTELEMETRY_END_NAMESPACE

0 commit comments

Comments
 (0)