Skip to content

Commit 6ccf9c7

Browse files
committed
refactor: make ConfigBase subclass constructors private
1 parent 9805fae commit 6ccf9c7

File tree

7 files changed

+49
-37
lines changed

7 files changed

+49
-37
lines changed

src/iceberg/file_reader.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ Result<std::unique_ptr<Reader>> ReaderFactoryRegistry::Open(
6060
}
6161

6262
std::unique_ptr<ReaderProperties> ReaderProperties::default_properties() {
63-
return std::make_unique<ReaderProperties>();
63+
return std::unique_ptr<ReaderProperties>(new ReaderProperties());
6464
}
6565

6666
std::unique_ptr<ReaderProperties> ReaderProperties::FromMap(
6767
const std::unordered_map<std::string, std::string>& properties) {
68-
auto reader_properties = std::make_unique<ReaderProperties>();
68+
auto reader_properties = std::unique_ptr<ReaderProperties>(new ReaderProperties());
6969
reader_properties->configs_ = properties;
7070
return reader_properties;
7171
}

src/iceberg/file_reader.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,9 @@ class ReaderProperties : public ConfigBase<ReaderProperties> {
8282
/// \brief Create a ReaderProperties instance from a map of key-value pairs.
8383
static std::unique_ptr<ReaderProperties> FromMap(
8484
const std::unordered_map<std::string, std::string>& properties);
85+
86+
private:
87+
ReaderProperties() = default;
8588
};
8689

8790
/// \brief Options for creating a reader.

src/iceberg/file_writer.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ Result<std::unique_ptr<Writer>> WriterFactoryRegistry::Open(
6060
}
6161

6262
std::unique_ptr<WriterProperties> WriterProperties::default_properties() {
63-
return std::make_unique<WriterProperties>();
63+
return std::unique_ptr<WriterProperties>(new WriterProperties());
6464
}
6565

6666
std::unique_ptr<WriterProperties> WriterProperties::FromMap(
6767
const std::unordered_map<std::string, std::string>& properties) {
68-
auto writer_properties = std::make_unique<WriterProperties>();
68+
auto writer_properties = std::unique_ptr<WriterProperties>(new WriterProperties());
6969
writer_properties->configs_ = properties;
7070
return writer_properties;
7171
}

src/iceberg/file_writer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ class WriterProperties : public ConfigBase<WriterProperties> {
5757
/// \brief Create a WriterProperties instance from a map of key-value pairs.
5858
static std::unique_ptr<WriterProperties> FromMap(
5959
const std::unordered_map<std::string, std::string>& properties);
60+
61+
private:
62+
WriterProperties() = default;
6063
};
6164

6265
/// \brief Options for creating a writer.

src/iceberg/table_properties.cc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ const std::unordered_set<std::string>& TableProperties::reserved_properties() {
3232
}
3333

3434
std::unique_ptr<TableProperties> TableProperties::default_properties() {
35-
return std::make_unique<TableProperties>();
35+
return std::unique_ptr<TableProperties>(new TableProperties());
3636
}
3737

3838
std::unique_ptr<TableProperties> TableProperties::FromMap(
3939
const std::unordered_map<std::string, std::string>& properties) {
40-
auto table_properties = std::make_unique<TableProperties>();
40+
auto table_properties = std::unique_ptr<TableProperties>(new TableProperties());
4141
for (const auto& [key, value] : properties) { // NOLINT(modernize-type-traits)
4242
table_properties->configs_[key] = value;
4343
}

src/iceberg/table_properties.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -295,6 +295,9 @@ class ICEBERG_EXPORT TableProperties : public ConfigBase<TableProperties> {
295295
/// \return A unique pointer to a TableProperties instance
296296
static std::unique_ptr<TableProperties> FromMap(
297297
const std::unordered_map<std::string, std::string>& properties);
298+
299+
private:
300+
TableProperties() = default;
298301
};
299302

300303
} // namespace iceberg

src/iceberg/test/config_test.cc

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -64,48 +64,51 @@ class TestConfig : public ConfigBase<TestConfig> {
6464
inline static const Entry<TestEnum> kEnumConfig{"enum_config", TestEnum::VALUE1,
6565
EnumToString, StringToEnum};
6666
inline static const Entry<double> kDoubleConfig{"double_config", 3.14};
67+
68+
private:
69+
TestConfig() = default;
6770
};
6871

6972
TEST(ConfigTest, BasicOperations) {
70-
TestConfig config;
73+
auto config = std::unique_ptr<TestConfig>(new TestConfig());
7174

7275
// Test default values
73-
ASSERT_EQ(config.Get(TestConfig::kStringConfig), std::string("default_value"));
74-
ASSERT_EQ(config.Get(TestConfig::kIntConfig), 25);
75-
ASSERT_EQ(config.Get(TestConfig::kBoolConfig), false);
76-
ASSERT_EQ(config.Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
77-
ASSERT_EQ(config.Get(TestConfig::kDoubleConfig), 3.14);
76+
ASSERT_EQ(config->Get(TestConfig::kStringConfig), std::string("default_value"));
77+
ASSERT_EQ(config->Get(TestConfig::kIntConfig), 25);
78+
ASSERT_EQ(config->Get(TestConfig::kBoolConfig), false);
79+
ASSERT_EQ(config->Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
80+
ASSERT_EQ(config->Get(TestConfig::kDoubleConfig), 3.14);
7881

7982
// Test setting values
80-
config.Set(TestConfig::kStringConfig, std::string("new_value"));
81-
config.Set(TestConfig::kIntConfig, 100);
82-
config.Set(TestConfig::kBoolConfig, true);
83-
config.Set(TestConfig::kEnumConfig, TestEnum::VALUE2);
84-
config.Set(TestConfig::kDoubleConfig, 2.99);
85-
86-
ASSERT_EQ(config.Get(TestConfig::kStringConfig), "new_value");
87-
ASSERT_EQ(config.Get(TestConfig::kIntConfig), 100);
88-
ASSERT_EQ(config.Get(TestConfig::kBoolConfig), true);
89-
ASSERT_EQ(config.Get(TestConfig::kEnumConfig), TestEnum::VALUE2);
90-
ASSERT_EQ(config.Get(TestConfig::kDoubleConfig), 2.99);
83+
config->Set(TestConfig::kStringConfig, std::string("new_value"));
84+
config->Set(TestConfig::kIntConfig, 100);
85+
config->Set(TestConfig::kBoolConfig, true);
86+
config->Set(TestConfig::kEnumConfig, TestEnum::VALUE2);
87+
config->Set(TestConfig::kDoubleConfig, 2.99);
88+
89+
ASSERT_EQ(config->Get(TestConfig::kStringConfig), "new_value");
90+
ASSERT_EQ(config->Get(TestConfig::kIntConfig), 100);
91+
ASSERT_EQ(config->Get(TestConfig::kBoolConfig), true);
92+
ASSERT_EQ(config->Get(TestConfig::kEnumConfig), TestEnum::VALUE2);
93+
ASSERT_EQ(config->Get(TestConfig::kDoubleConfig), 2.99);
9194

9295
// Test unsetting a value
93-
config.Unset(TestConfig::kIntConfig);
94-
config.Unset(TestConfig::kEnumConfig);
95-
config.Unset(TestConfig::kDoubleConfig);
96-
ASSERT_EQ(config.Get(TestConfig::kIntConfig), 25);
97-
ASSERT_EQ(config.Get(TestConfig::kStringConfig), "new_value");
98-
ASSERT_EQ(config.Get(TestConfig::kBoolConfig), true);
99-
ASSERT_EQ(config.Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
100-
ASSERT_EQ(config.Get(TestConfig::kDoubleConfig), 3.14);
96+
config->Unset(TestConfig::kIntConfig);
97+
config->Unset(TestConfig::kEnumConfig);
98+
config->Unset(TestConfig::kDoubleConfig);
99+
ASSERT_EQ(config->Get(TestConfig::kIntConfig), 25);
100+
ASSERT_EQ(config->Get(TestConfig::kStringConfig), "new_value");
101+
ASSERT_EQ(config->Get(TestConfig::kBoolConfig), true);
102+
ASSERT_EQ(config->Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
103+
ASSERT_EQ(config->Get(TestConfig::kDoubleConfig), 3.14);
101104

102105
// Test resetting all values
103-
config.Reset();
104-
ASSERT_EQ(config.Get(TestConfig::kStringConfig), "default_value");
105-
ASSERT_EQ(config.Get(TestConfig::kIntConfig), 25);
106-
ASSERT_EQ(config.Get(TestConfig::kBoolConfig), false);
107-
ASSERT_EQ(config.Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
108-
ASSERT_EQ(config.Get(TestConfig::kDoubleConfig), 3.14);
106+
config->Reset();
107+
ASSERT_EQ(config->Get(TestConfig::kStringConfig), "default_value");
108+
ASSERT_EQ(config->Get(TestConfig::kIntConfig), 25);
109+
ASSERT_EQ(config->Get(TestConfig::kBoolConfig), false);
110+
ASSERT_EQ(config->Get(TestConfig::kEnumConfig), TestEnum::VALUE1);
111+
ASSERT_EQ(config->Get(TestConfig::kDoubleConfig), 3.14);
109112
}
110113

111114
} // namespace iceberg

0 commit comments

Comments
 (0)