00001 //*****************************************************************// 00002 // Albany 2.0: Copyright 2012 Sandia Corporation // 00003 // This Software is released under the BSD license detailed // 00004 // in the file "license.txt" in the top-level Albany directory // 00005 //*****************************************************************// 00006 #ifndef MOR_MULTIVECTORINPUTFILEFACTORY_HPP 00007 #define MOR_MULTIVECTORINPUTFILEFACTORY_HPP 00008 00009 #include "MOR_MultiVectorInputFile.hpp" 00010 00011 #include "Teuchos_Array.hpp" 00012 #include "Teuchos_RCP.hpp" 00013 #include "Teuchos_ParameterList.hpp" 00014 00015 #include <string> 00016 00017 namespace MOR { 00018 00019 class MultiVectorInputFileFactory { 00020 public: 00021 explicit MultiVectorInputFileFactory(const Teuchos::RCP<Teuchos::ParameterList> ¶ms); 00022 Teuchos::RCP<MultiVectorInputFile> create(); 00023 00024 private: 00025 Teuchos::RCP<Teuchos::ParameterList> params_; 00026 00027 std::string inputFileName_, inputFileFormat_; 00028 Teuchos::Array<std::string> validFileFormats_; 00029 00030 void initValidFileFormats(); 00031 void initInputFileFormat(); 00032 void initInputFileName(); 00033 00034 // Disallow copy and assignment 00035 MultiVectorInputFileFactory(const MultiVectorInputFileFactory &); 00036 MultiVectorInputFileFactory &operator=(const MultiVectorInputFileFactory &); 00037 }; 00038 00039 } // namespace MOR 00040 00041 #endif /* MOR_MULTIVECTORINPUTFILEFACTORY_HPP */