29 #ifndef ALGORITHMS_BASE_ALGORITHMPRECONDITIONS_H
30 #define ALGORITHMS_BASE_ALGORITHMPRECONDITIONS_H
39 namespace Algorithms {
53 #define THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE_AND_MESSAGE(type, messageToPrint, messageForErrorObject) { error(messageToPrint); BOOST_THROW_EXCEPTION(SCIRun::Core::Algorithms::AlgorithmInputException() << type((messageForErrorObject))); }
54 #define THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE(type, message) THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE_AND_MESSAGE(type, message, message)
55 #define THROW_ALGORITHM_INPUT_ERROR(message) THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE(SCIRun::Core::ErrorMessage, message)
56 #define THROW_ALGORITHM_INPUT_ERROR_SIMPLE(message) BOOST_THROW_EXCEPTION(SCIRun::Core::Algorithms::AlgorithmInputException() << SCIRun::Core::ErrorMessage((message)));
58 #define THROW_ALGORITHM_PROCESSING_ERROR_WITH_TYPE(type, message) { error(message); BOOST_THROW_EXCEPTION(SCIRun::Core::Algorithms::AlgorithmProcessingException() << type((message))); }
59 #define THROW_ALGORITHM_PROCESSING_ERROR(message) THROW_ALGORITHM_PROCESSING_ERROR_WITH_TYPE(SCIRun::Core::ErrorMessage, message)
61 #define ENSURE_ALGORITHM_INPUT_NOT_NULL(var, message) if (!(var)) THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE(SCIRun::Core::NullObjectInfo, message) else (void)0
63 #define ENSURE_POSITIVE_DOUBLE(var, message) if ((var) <= 0) \
64 THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE_AND_MESSAGE(DoubleOutOfRangeInfo, message, \
65 DoubleOutOfRangeInfo::value_type( \
66 std::string(message), \
68 boost::numeric::interval<double>(0, std::numeric_limits<double>::infinity()))) \
71 #define ENSURE_POSITIVE_INT(var, message) if ((var) <= 0) \
72 THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE_AND_MESSAGE(IntOutOfRangeInfo, message, \
73 IntOutOfRangeInfo::value_type( \
74 std::string(message), \
76 boost::numeric::interval<int>(0, std::numeric_limits<int>::infinity()))) \
79 #define ENSURE_FILE_EXISTS(filename) if (!boost::filesystem::exists(filename))\
80 THROW_ALGORITHM_INPUT_ERROR_WITH_TYPE(FileNotFound, std::string("File not found: (") + (filename.size() != 0 ? filename : "<no file set>") + ")") \
Definition: AlgorithmPreconditions.h:49
#define SCISHARE
Definition: share.h:39
Definition: Exception.h:46
Definition: AlgorithmPreconditions.h:45