diff --git a/Device/IO/IOFactory.cpp b/Device/IO/IOFactory.cpp index 9892bb80c33d0990d990624012411a3135ab5f23..64732caf426f88194b6cd99cde9e16fc40bb479e 100644 --- a/Device/IO/IOFactory.cpp +++ b/Device/IO/IOFactory.cpp @@ -108,14 +108,31 @@ void stream2file(const std::string& file_name, std::stringstream& s) fout.close(); } +bool fileTypeMatchesLoaderSelector(const std::string& fileName, IOFactory::LoaderSelector selector) +{ + switch (selector) { + case IOFactory::bornagain: + return DataUtil::Format::isIntFile(fileName); + case IOFactory::nicos: + return DataUtil::Format::isNicosFile(fileName); + case IOFactory::tiff: + return DataUtil::Format::isTiffFile(fileName); + case IOFactory::automatic: + return false; + } + + return false; +} + } // namespace + Datafield* IOFactory::readDatafield(const std::string& file_name, LoaderSelector selector) { const auto readAs = [=](LoaderSelector testForSelector) { return (selector == testForSelector) || (selector == automatic - && fileTypeMatchesLoaderSelector(file_name, testForSelector)); + && ::fileTypeMatchesLoaderSelector(file_name, testForSelector)); }; auto s = ::file2stream(file_name); @@ -140,7 +157,7 @@ Datafield* IOFactory::readDatafield(const std::string& file_name, LoaderSelector Datafield* IOFactory::readReflectometryData(const std::string& file_name) { - auto s = file2stream(file_name); + auto s = ::file2stream(file_name); return IO::readReflectometryTable(s); } @@ -158,29 +175,13 @@ void IOFactory::writeDatafield(const Datafield& data, const std::string& file_na else IO::writeNumpyTxt(data, s); - stream2file(file_name, s); + ::stream2file(file_name, s); } catch (const std::exception& ex) { throw std::runtime_error("Failed writing to " + file_name + ": " + ex.what()); } } -bool IOFactory::fileTypeMatchesLoaderSelector(const std::string& fileName, LoaderSelector selector) -{ - switch (selector) { - case bornagain: - return DataUtil::Format::isIntFile(fileName); - case nicos: - return DataUtil::Format::isNicosFile(fileName); - case tiff: - return DataUtil::Format::isTiffFile(fileName); - case automatic: - return false; - } - - return false; -} - bool IOUtil::filesAgree(const std::string& datFileName, const std::string& refFileName, double tol) { std::unique_ptr<Datafield> datDat; diff --git a/Device/IO/IOFactory.h b/Device/IO/IOFactory.h index d169a62b53d5b65dfec52976c44c48497ab6f72c..8fac354423bd9c8f6732230c62ca0ea10ceb93cf 100644 --- a/Device/IO/IOFactory.h +++ b/Device/IO/IOFactory.h @@ -58,9 +58,6 @@ public: //! Writes Datafield in file static void writeDatafield(const Datafield& data, const std::string& file_name); - -private: - static bool fileTypeMatchesLoaderSelector(const std::string& fileName, LoaderSelector selector); }; namespace IOUtil {