Move helpers to the detail namespace, layout changes.

The helpers were moved to the bottom of the file for clarity.
Misc. layout and whitespace changes, also fix two minor
errors in comments.
This commit is contained in:
Atgeirr Flø Rasmussen 2016-04-29 14:59:18 +02:00
parent 8ea71e2f15
commit 34bc69c257

View File

@ -103,56 +103,18 @@
namespace Opm namespace Opm
{ {
boost::filesystem::path simulationCaseName( const std::string& casename ) {
namespace fs = boost::filesystem;
const auto exists = []( const fs::path& f ) -> bool { namespace detail
if( !fs::exists( f ) ) return false;
if( fs::is_regular_file( f ) ) return true;
return fs::is_symlink( f )
&& fs::is_regular_file( fs::read_symlink( f ) );
};
auto simcase = fs::path( casename );
if( exists( simcase ) ) {
return simcase;
}
for( const auto& ext : { std::string("data"), std::string("DATA") } ) {
if( exists( simcase.replace_extension( ext ) ) ) {
return simcase;
}
}
throw std::invalid_argument( "Cannot find input case " + casename );
}
int64_t convertMessageType(const Message::type& mtype)
{ {
switch (mtype) { boost::filesystem::path simulationCaseName( const std::string& casename );
case Message::type::Debug: int64_t convertMessageType(const Message::type& mtype);
return Log::MessageType::Debug;
case Message::type::Info:
return Log::MessageType::Info;
case Message::type::Warning:
return Log::MessageType::Warning;
case Message::type::Error:
return Log::MessageType::Error;
case Message::type::Problem:
return Log::MessageType::Problem;
case Message::type::Bug:
return Log::MessageType::Bug;
}
throw std::logic_error("Invalid messages type!\n");
} }
/// This class encapsulates the setup and running of /// This class encapsulates the setup and running of
/// a simulator based on an input deck. /// a simulator based on an input deck.
template <class Implementation, class Grid, class Simulator> template <class Implementation, class Grid, class Simulator>
@ -331,7 +293,7 @@ namespace Opm
std::cerr << "You can only specify a single input deck on the command line.\n"; std::cerr << "You can only specify a single input deck on the command line.\n";
return false; return false;
} else { } else {
const auto casename = simulationCaseName( param_.unhandledArguments()[ 0 ] ); const auto casename = detail::simulationCaseName( param_.unhandledArguments()[ 0 ] );
param_.insertParameter("deck_filename", casename.string() ); param_.insertParameter("deck_filename", casename.string() );
} }
} }
@ -598,11 +560,9 @@ namespace Opm
// Extract messages from parser.
// extract messages from parser // Writes to:
// Write to: // OpmLog singleton.
// logFile_
void extractMessages() void extractMessages()
{ {
auto extractMessage = [](const Message& msg) { auto extractMessage = [](const Message& msg) {
@ -629,9 +589,10 @@ namespace Opm
// run diagnostics
// Run diagnostics.
// Writes to: // Writes to:
// logFile_ // OpmLog singleton.
void runDiagnostics() void runDiagnostics()
{ {
// Run relperm diagnostics // Run relperm diagnostics
@ -796,6 +757,67 @@ namespace Opm
namespace detail
{
boost::filesystem::path simulationCaseName( const std::string& casename ) {
namespace fs = boost::filesystem;
const auto exists = []( const fs::path& f ) -> bool {
if( !fs::exists( f ) ) return false;
if( fs::is_regular_file( f ) ) return true;
return fs::is_symlink( f )
&& fs::is_regular_file( fs::read_symlink( f ) );
};
auto simcase = fs::path( casename );
if( exists( simcase ) ) {
return simcase;
}
for( const auto& ext : { std::string("data"), std::string("DATA") } ) {
if( exists( simcase.replace_extension( ext ) ) ) {
return simcase;
}
}
throw std::invalid_argument( "Cannot find input case " + casename );
}
int64_t convertMessageType(const Message::type& mtype)
{
switch (mtype) {
case Message::type::Debug:
return Log::MessageType::Debug;
case Message::type::Info:
return Log::MessageType::Info;
case Message::type::Warning:
return Log::MessageType::Warning;
case Message::type::Error:
return Log::MessageType::Error;
case Message::type::Problem:
return Log::MessageType::Problem;
case Message::type::Bug:
return Log::MessageType::Bug;
}
throw std::logic_error("Invalid messages type!\n");
}
} // namespace detail
} // namespace Opm } // namespace Opm
#endif // OPM_FLOWMAIN_HEADER_INCLUDED #endif // OPM_FLOWMAIN_HEADER_INCLUDED