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_MULTIVECTOROUTPUTFILEFACTORY_HPP 00007 #define MOR_MULTIVECTOROUTPUTFILEFACTORY_HPP 00008 00009 #include "MOR_MultiVectorOutputFile.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 MultiVectorOutputFileFactory { 00020 public: 00021 explicit MultiVectorOutputFileFactory(const Teuchos::RCP<Teuchos::ParameterList> ¶ms); 00022 Teuchos::RCP<MultiVectorOutputFile> create(); 00023 00024 private: 00025 Teuchos::RCP<Teuchos::ParameterList> params_; 00026 00027 std::string outputFileName_, outputFileFormat_; 00028 Teuchos::Array<std::string> validFileFormats_; 00029 00030 void initValidFileFormats(); 00031 void initOutputFileFormat(); 00032 void initOutputFileName(); 00033 00034 // Disallow copy and assignment 00035 MultiVectorOutputFileFactory(const MultiVectorOutputFileFactory &); 00036 MultiVectorOutputFileFactory &operator=(const MultiVectorOutputFileFactory &); 00037 }; 00038 00039 } // namespace MOR 00040 00041 #endif /* MOR_MULTIVECTOROUTPUTFILEFACTORY_HPP */