Rosetta
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Namespaces | Macros | Typedefs | Functions
exit.hh File Reference

Program exit functions and macros. More...

#include <string>

Go to the source code of this file.

Namespaces

 utility
 unresizable vector whose size is known at compile time, which may be allocated on the stack, and which indexes from 0.
 

Macros

#define utility_exit()   utility::exit( __FILE__, __LINE__ )
 Macro function wrappers for utility::exit. More...
 
#define utility_exit_with_message(m)   utility::exit( __FILE__, __LINE__, m )
 Exit with file + line + message. More...
 
#define utility_exit_with_status(s)   utility::exit( __FILE__, __LINE__, s )
 Exit with file + line + status. More...
 
#define utility_exit_with_message_status(m, s)   utility::exit( __FILE__, __LINE__, m, s )
 Exit with file + line + message + status. More...
 
#define runtime_assert(_Expression)   if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, #_Expression)
 Assert that the condition holds. Evaluated for both debug and release builds. More...
 
#define runtime_assert_msg(_Expression, msg)   if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, #_Expression " MSG:" msg )
 Assert that the condition holds. Evaluated for both debug and release builds. More...
 
#define runtime_assert_string_msg(_Expression, msg)   if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, msg )
 Assert that the condition holds. Evaluated for both debug and release builds. More...
 
#define NORETURN
 

Typedefs

typedef void(* utility::UtilityExitCallBack )(void)
 

Functions

void utility::exit (std::string const &file, int const line, std::string const &message, int const status)
 Exit with file + line + message + optional status. More...
 
int utility::cond_exit (bool condition, std::string const &file, int const line, std::string const &message, int const status)
 Conditional Exit with file + line + message + optional status. More...
 
void utility::exit (std::string const &file, int const line, int const status=1) NORETURN
 Exit with file + line + optional status. More...
 
void utility::exit (int const status, std::string const &file, int const line)
 Exit with file + line + status. More...
 
void utility::set_main_exit_callback (UtilityExitCallBack=0)
 Set call back funtion that will be called on utility::exit. Use this function to overload default behavior of sys.exit to more appropriate to your application Defaut value for callback function is 0, whicth mean no sys exit is called. More...
 
void utility::add_exit_callback (UtilityExitCallBack)
 Add additional callback function that will be called before standard exit(…) is executed. [Note: do not confuse this function with 'set_main_exit_callback' which is replacing the end behavior of exit(…)]. More...
 
void utility::remove_exit_callback (UtilityExitCallBack)
 Remove additional callback function that was previously added by using add_exit_callback. More...
 

Detailed Description

Program exit functions and macros.

Author
David Kim (dekim.nosp@m.@u.w.nosp@m.ashin.nosp@m.gton.nosp@m..edu)
Sergey Lyskov (Serge.nosp@m.y.Ly.nosp@m.skov@.nosp@m.jhu..nosp@m.edu)
Stuart G. Mentzer (Stuar.nosp@m.t_Me.nosp@m.ntzer.nosp@m.@obj.nosp@m.exx.c.nosp@m.om)
Note
The point of these is:
  • Show the file and line number where the exit originates
  • Optionally show a message about why the exit occurred
  • Provide a core dump on Linux/UNIX so a post-mortem backtrace can be performed
  • Provide macro functions to add the file and line for you
Break on utility::exit when debugging to allow you to get a backtrace from the point of exit

Definition in file exit.hh.

Macro Definition Documentation

#define NORETURN

Definition at line 82 of file exit.hh.

#define runtime_assert (   _Expression)    if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, #_Expression)

Assert that the condition holds. Evaluated for both debug and release builds.

Definition at line 63 of file exit.hh.

Referenced by utility::options::VariantOption< VectorOption >::activate(), utility::options::VariantOption< VectorOption >::active(), all_pair_energies(), DummyMover::apply(), FitMover::apply(), calculate_res_map(), utility::options::VariantOption< VectorOption >::cl_value(), utility::options::VariantOption< VectorOption >::clear(), basic::MetricValueBase::clone(), ScoreFragmentSetMover::closability_score(), utility::options::VariantOption< VectorOption >::code(), numeric::MultiDimensionalHistogram::collapse(), numeric::comma_seperated_string_to_xyz(), composite_sequences_from_cmd_line(), utility::options::VariantOption< VectorOption >::deactivate(), utility::options::VariantOption< VectorOption >::default_size(), densityTools(), utility::options::VariantOption< VectorOption >::description(), figure_out_which_sequence_is_template(), filter_combine_long_loop(), get_bps_seq(), utility::get_resnum_and_segid_from_one_tag(), go_main(), Histogram::Histogram(), utility::options::VariantOption< VectorOption >::id(), utility::options::VariantOption< VectorOption >::identifier(), UBQ_GTPase_disulfide_Mover::init_on_new_input(), UBQ_GTPaseMover::init_on_new_input(), UBQ_E2Mover::init_on_new_input(), utility::options::VariantOption< VectorOption >::key(), main(), utility::make_segtag_with_dashes(), utility::make_tag_with_dashes(), MC_run(), numeric::MultiDimensionalHistogram::mean_squared_error(), mg_modeler_test(), ExposedStrandMover::move_superimpose(), utility::options::VariantOption< VectorOption >::n_default_value(), utility::options::VariantOption< VectorOption >::n_value(), utility::options::VariantOption< VectorOption >::name(), nucleobase_probe_score_test(), utility::options::VariantOption< VectorOption >::operator Option &(), utility::options::VariantOption< VectorOption >::operator Option *(), utility::options::VariantOption< VectorOption >::operator Option const &(), utility::options::VariantOption< VectorOption >::operator Option const *(), utility::options::VariantOption< VectorOption >::operator()(), utility::options::OptionCollection::operator()(), utility::options::operator<(), utility::options::OptionCollection::operator[](), output_general_base_pair_steps(), post_rebuild_bulge_assembly(), utility::options::OptionCollection::prefix(), prepare_threaded_model(), DockFragmentsMover::process_fragfile(), read_in_mutations(), rebuild_test(), utility::options::ResidueChainVectorOption::resnum_and_chain(), rna_denovo_test(), rna_features_from_pose(), rna_sample_virtual_sugar(), rna_superimpose_and_graft_test(), rna_thread_test(), ScoreFragmentSetMover::run(), save_feature(), utility::options::OptionCollection::set_option_value_cl(), utility::options::OptionCollection::set_option_value_file(), utility::options::VariantOption< VectorOption >::size(), basic::options::start_file(), utility::options::OptionCollection::suffix(), superimpose_pdb(), swa_rna_cluster(), utility::options::OptionCollection::trim(), utility::options::OptionCollection::trimmed(), numeric::random::WeightedSampler::update_cumulative_distribution(), utility::options::VariantOption< VectorOption >::user(), vector2disk_in2d(), utility::file::PathName::vol(), and utility::options::OptionCollection::wrapped().

#define runtime_assert_msg (   _Expression,
  msg 
)    if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, #_Expression " MSG:" msg )

Assert that the condition holds. Evaluated for both debug and release builds.

Definition at line 66 of file exit.hh.

#define runtime_assert_string_msg (   _Expression,
  msg 
)    if ( !(_Expression) ) utility::exit(__FILE__, __LINE__, msg )

Assert that the condition holds. Evaluated for both debug and release builds.

Definition at line 71 of file exit.hh.

Referenced by numeric::principal_components_and_eigenvalues_ndimensions().

#define utility_exit ( )    utility::exit( __FILE__, __LINE__ )

Macro function wrappers for utility::exit.

Note
Convenience macros that fills in the file and line
These have to be macros to get the file and line from the point of call
Don't use variadic macros to reduce the "overloads": They aren't standard C++ Exit with file + line

Definition at line 41 of file exit.hh.

Referenced by basic::check_cast(), utility::file::create_blank_file(), basic::options::int2afteroption(), basic::options::intafteroption(), main(), APDBCMover::read_in_insert_loop_info(), basic::options::real2afteroption(), basic::options::real3afteroption(), basic::options::realafteroption(), numeric::sin_cos_range(), basic::options::start_files(), basic::options::stringafteroption(), basic::database::schema_generator::Schema::write(), and basic::database::write_schema_to_database().

#define utility_exit_with_message (   m)    utility::exit( __FILE__, __LINE__, m )

Exit with file + line + message.

Note
The m argument is a message string

Definition at line 47 of file exit.hh.

Referenced by numeric::expression_parser::ArithmeticScanner::add_function(), numeric::expression_parser::ArithmeticScanner::add_variable(), numeric::expression_parser::SimpleExpressionCreator::add_variable(), align_pdbs(), align_pose_general(), AnchorFinderMover::AnchorFinderMover(), numeric::MathVector< Real >::assert_valid_position(), IAMover::assign_IA_mover(), assure(), HDmakerMover::bb_score(), utility::sql_database::session::begin_transaction(), basic::database::insert_statement_generator::InsertGenerator::bind_row_data(), calculate_pairwise_RMSD(), check_alignment_RMSD_cutoff(), basic::database::check_statement_sanity(), cluster_test(), utility::sql_database::session::commit_transaction(), compute_chem_shift_RMSD(), basic::resource_manager::ResourceManagerFactory::create_resource_manager_from_options_system(), basic::resource_manager::LazyResourceManager::create_resources(), create_scorefxn(), numeric::random::createRG(), cs_rosetta_rna_pdb(), utility::sql_database::database_mode_from_name(), basic::database::db_partition_from_options(), numeric::interpolation::Histogram< typename, typename >::derivative(), numeric::interpolation::Histogram< typename, typename >::derivative_linear(), basic::mpi::DbMoverMessageListener::deserialize_data(), utility::tag::Tag::die_for_unaccessed_options(), numeric::expression_parser::BinaryExpression::e1(), numeric::expression_parser::BinaryExpression::e2(), utility::io::ozstream::enable_MPI_reroute(), numeric::expression_parser::UnaryExpression::ex(), basic::execute(), extract_pdbs_test(), utility::factory::WidgetFactory< Creator >::factory_register(), basic::resource_manager::ResourceLocatorFactory::factory_register(), basic::resource_manager::ResourceOptionsFactory::factory_register(), basic::resource_manager::ResourceLoaderFactory::factory_register(), basic::resource_manager::FallbackConfigurationFactory::factory_register(), figure_out_which_sequence_is_template(), basic::resource_manager::ResourceManager::find_resource(), basic::resource_manager::LazyResourceManager::find_resource(), basic::resource_manager::LazyResourceManager::find_resource_tag_by_job_tag(), utility::sql_database::session::force_commit_transaction(), utility::graph::RingEdgeAnnotationVisitor< Graph, EdgeMap, PathMap >::forward_or_cross_edge(), basic::resource_manager::ResourceManager::free_resource(), utility::from_string(), full_length_rmsd_over_reside_list_general(), numeric::expression_parser::ArithmeticASTFunction::function(), numeric::RocCurve::generate_roc_curve(), basic::resource_manager::LazyResourceManager::get_count_of_jobs_associated_with_resource_tag(), basic::database::get_db_session(), utility::sql_database::DatabaseSessionManager::get_db_session(), get_file_vector_option(), basic::resource_manager::LazyResourceManager::get_job_options(), utility::io::get_lines_from_file_data(), basic::mpi::MessageListenerFactory::get_listener(), basic::options::get_option(), get_option(), basic::resource_manager::LazyResourceManager::get_resource_tags_for_job_tag(), utility::sql_database::DatabaseSessionManager::get_session_mysql(), utility::sql_database::DatabaseSessionManager::get_session_postgres(), utility::sql_database::DatabaseSessionManager::get_session_sqlite3(), basic::svd::SVD_Solver::get_svd_solution(), numeric::expression_parser::SimpleExpressionCreator::get_variable(), numeric::expression_parser::ExpressionCreator::handle_function_expression(), numeric::expression_parser::BooleanExpressionCreator::handle_function_expression(), numeric::expression_parser::ExpressionCreator::handle_variable_expression(), numeric::expression_parser::SimpleExpressionCreator::handle_variable_expression(), import_and_dump_pdb(), utility::vectorL< 1, std::string, A >::index_of(), numeric::geometry::hashing::xyzStripeHash::init(), numeric::geometry::hashing::xyzStripeHashWithMeta< float >::init(), initialize_native_pose(), basic::database::insert_or_ignore(), numeric::RocCurve::insert_point(), numeric::interpolation::Histogram< typename, typename >::interpolate(), numeric::interpolation::Histogram< typename, typename >::interpolate_linear(), numeric::MathMatrix< Real >::IsValidPosition(), numeric::expression_parser::ArithmeticASTValue::literal_value(), main(), make_sequence_change(), match_main(), numeric::interpolation::Histogram< typename, typename >::maximum(), mg_modeler_test(), numeric::interpolation::Histogram< typename, typename >::minimum(), my_main(), utility::sql_database::name_from_database_mode(), utility::sql_database::name_from_transaction_mode(), basic::mpi::name_to_listener_tag(), basic::svd::SVD_Solver::operator=(), output_superimposed_pdb(), numeric::expression_parser::ArithmeticASTExpression::parse(), numeric::expression_parser::ArithmeticASTFunction::parse(), numeric::expression_parser::ArithmeticASTTerm::parse(), numeric::expression_parser::ArithmeticASTFactor::parse(), numeric::expression_parser::ArithmeticASTValue::parse(), basic::database::parse_database_connection(), pdb_minimizer(), pdb_to_silent_file(), numeric::expression_parser::TokenSet::pop(), post_rebuild_bulge_assembly(), basic::database::schema_generator::Column::print(), basic::database::schema_generator::DbText::print(), basic::database::schema_generator::Index::print(), basic::database::schema_generator::DbTextKey::print(), basic::database::schema_generator::ForeignKey::print(), basic::database::schema_generator::DbBigInt::print(), basic::database::schema_generator::DbDouble::print(), basic::database::schema_generator::DbReal::print(), basic::database::schema_generator::DbUUID::print(), APDBCMover::read_in_insert_loop_info(), read_input_weights(), read_native_sequence_for_entity_elements(), numeric::read_probabilities_or_die(), read_structures(), utility::ReadFromFileOrDie(), utility::replace_environment_variables(), basic::mpi::request_data_from_head_node(), numeric::expression_parser::ArithmeticASTRestExpression::rest_expression_token(), numeric::expression_parser::ArithmeticASTRestTerm::rest_term_token(), rna_build_helix_test(), rna_fullatom_minimize_test(), rna_score_test(), rna_thread_test(), numeric::xyzTransform< numeric::Real >::rotation_axis(), basic::svd::SVD_Solver::run_decomp_svd(), run_pep_prep(), basic::svd::SVD_Solver::run_score_svd_on_matrix(), basic::svd::SVD_Solver::run_score_svd_without_solving(), basic::svd::SVD_Solver::run_solve_svd(), RunPepSpec(), basic::database::safely_prepare_statement(), basic::database::safely_read_from_database(), basic::database::safely_write_to_database(), numeric::geometry::hashing::xyzStripeHash::sanity_check(), numeric::geometry::hashing::xyzStripeHashWithMeta< float >::sanity_check(), numeric::expression_parser::ArithmeticScanner::scan(), numeric::expression_parser::ArithmeticScanner::scan_identifier(), numeric::expression_parser::ArithmeticScanner::scan_literal(), basic::mpi::send_data_to_head_node(), sequence_tolerance_main(), basic::svd::SVD_Solver::set_matrix_A(), basic::options::set_option(), set_option(), numeric::interpolation::Histogram< typename, typename >::set_params(), basic::svd::SVD_Solver::set_vector_b(), slice_ellipsoid_envelope(), slice_sample_res_and_surrounding(), numeric::interpolation::spline_from_file(), basic::options::start_files(), utility::string_split(), basic::svd::SVD_Solver::SVD_Solver(), basic::svd::SVD_Solver::svdcmp(), swa_rna_cluster(), basic::database::table_exists(), basic::database::schema_generator::Schema::table_init_statements(), basic::database::schema_generator::Schema::table_schema_statements(), numeric::expression_parser::TokenSet::top(), basic::TracerToFile::TracerToFile(), utility::sql_database::transaction_mode_from_name(), utility::py::Value::Value(), numeric::expression_parser::ArithmeticASTValue::variable_name(), numeric::expression_parser::ASTPrinter::visit(), numeric::expression_parser::ExpressionCreator::visit(), and basic::database::insert_statement_generator::InsertGenerator::write_to_database().

#define utility_exit_with_message_status (   m,
 
)    utility::exit( __FILE__, __LINE__, m, s )

Exit with file + line + message + status.

Note
The m argument is a message string
The s argument is a status value

Definition at line 60 of file exit.hh.

Referenced by ExposedStrandMover::apply(), and main().

#define utility_exit_with_status (   s)    utility::exit( __FILE__, __LINE__, s )

Exit with file + line + status.

Note
The s argument is a status value

Definition at line 53 of file exit.hh.