diff --git a/.clang-tidy b/.clang-tidy index d690ab530a79488c018c6616c44f61638d585f83..7909488fd59b5b71df202f8aa69602a48612094c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,5 +1,5 @@ --- -Checks: 'clang-diagnostic-*,clang-analyzer-*,-*,modernize-use-equals-default,modernize-use-emplace,modernize-loop-convert,modernize-use-nullptr,modernize-use-override,modernize-use-using,modernize-return-braced-init-list,modernize-deprecated-headers,modernize-make-shared,google-explicit-constructor,google-build-using-namespace,google-readability-braces-around-statements,fuchsia-header-anon-namespaces' +Checks: 'clang-diagnostic-*,clang-analyzer-*,-*,modernize-use-equals-default,modernize-use-emplace,modernize-loop-convert,modernize-use-nullptr,modernize-use-override,modernize-use-using,modernize-return-braced-init-list,modernize-deprecated-headers,modernize-make-shared,google-explicit-constructor,google-build-using-namespace,fuchsia-header-anon-namespaces' WarningsAsErrors: '' HeaderFilterRegex: 'include/schaapcommon' AnalyzeTemporaryDtors: false @@ -64,8 +64,6 @@ CheckOptions: value: 'true' - key: fuchsia-header-anon-namespaces.HeaderFileExtensions value: ';h;hh;hpp;hxx' - - key: google-readability-braces-around-statements.ShortStatementLines - value: '1' - key: modernize-use-emplace.IgnoreImplicitConstructors value: 'false' - key: modernize-use-nullptr.NullMacros diff --git a/include/schaapcommon/reordering/reorderedhandle.h b/include/schaapcommon/reordering/reorderedhandle.h index 7f5a379c36b31a51ff08104fcf30002ca3d7a408..63bc1cca46205f08362bbdac9fa1ae491bae6f99 100644 --- a/include/schaapcommon/reordering/reorderedhandle.h +++ b/include/schaapcommon/reordering/reorderedhandle.h @@ -5,6 +5,7 @@ #define SCHAAPCOMMON_REORDERING_HANDLE_H_ #include "msselection.h" +#include "storagemanagertype.h" #include <vector> #include <string> @@ -34,6 +35,7 @@ struct ReorderedHandleData { ReorderedHandleData( const std::string& ms_path, const std::string& data_column_name, const std::string& model_column_name, + StorageManagerType model_storage_manager, const std::string& temporary_directory, const std::vector<ChannelRange>& channels, bool initial_model_required, bool model_update_required, @@ -44,6 +46,7 @@ struct ReorderedHandleData { : ms_path_(ms_path), data_column_name_(data_column_name), model_column_name_(model_column_name), + model_storage_manager_(model_storage_manager), temporary_directory_(temporary_directory), channels_(channels), initial_model_required_(initial_model_required), @@ -60,6 +63,7 @@ struct ReorderedHandleData { std::string ms_path_; std::string data_column_name_; std::string model_column_name_; + StorageManagerType model_storage_manager_; std::string temporary_directory_; std::vector<ChannelRange> channels_; bool initial_model_required_; diff --git a/include/schaapcommon/reordering/storagemanagertype.h b/include/schaapcommon/reordering/storagemanagertype.h new file mode 100644 index 0000000000000000000000000000000000000000..bec9f226329181387b5511ae9f967f14a0d77592 --- /dev/null +++ b/include/schaapcommon/reordering/storagemanagertype.h @@ -0,0 +1,26 @@ +#ifndef WSCLEAN_MAIN_STORAGE_MANAGER_TYPE_H_ +#define WSCLEAN_MAIN_STORAGE_MANAGER_TYPE_H_ + +#include <stdexcept> +#include <string> + +#include <boost/algorithm/string.hpp> + +namespace schaapcommon::reordering { + +enum class StorageManagerType { Default, StokesI }; + +inline StorageManagerType GetStorageManagerType( + const std::string& type_string) { + const std::string lowercase_type = boost::to_lower_copy(type_string); + if (lowercase_type == "default") + return StorageManagerType::Default; + else if (lowercase_type == "stokes_i" || lowercase_type == "stokes-i") + return StorageManagerType::StokesI; + else + throw std::runtime_error("Unknown storage manager type: " + type_string); +} + +} // namespace schaapcommon::reordering + +#endif diff --git a/src/reordering/test/treordered_filewriter.cc b/src/reordering/test/treordered_filewriter.cc index c68409c4d580c73b16381ed0157b07d464faf28d..0016a8d43e723083b7e293e5014decafba29cdf1 100644 --- a/src/reordering/test/treordered_filewriter.cc +++ b/src/reordering/test/treordered_filewriter.cc @@ -23,6 +23,7 @@ using schaapcommon::reordering::MetaRecord; using schaapcommon::reordering::PartHeader; using schaapcommon::reordering::ReorderedFileWriter; using schaapcommon::reordering::ReorderedHandleData; +using schaapcommon::reordering::StorageManagerType; class FixtureDirectory { public: @@ -70,6 +71,7 @@ const std::string kTemporaryDirectory = "tmp"; const double kStartTime = 1.0; const ReorderedHandleData kData("test.ms", "DATA", "MODEL_DATA", + StorageManagerType::Default, kTemporaryDirectory, kChannelRanges, true, false, kPolsOut, kSelection, kBands, 6, true, [](ReorderedHandleData) {}); @@ -198,9 +200,9 @@ BOOST_FIXTURE_TEST_CASE(reordering_writer_assert_zeros_model_creation, { boost::filesystem::create_directory(kTemporaryDirectory); const ReorderedHandleData handle_no_model_column( - "test.ms", "DATA", "MODEL_DATA", kTemporaryDirectory, kChannelRanges, - false, false, kPolsOut, kSelection, kBands, 6, true, - [](ReorderedHandleData) {}); + "test.ms", "DATA", "MODEL_DATA", StorageManagerType::Default, + kTemporaryDirectory, kChannelRanges, false, false, kPolsOut, kSelection, + kBands, 6, true, [](ReorderedHandleData) {}); ReorderedFileWriter reordering_writer( handle_no_model_column, kMsPolarizationsPerDataDescId, kStartTime);