For PR797:

Change interface for error recovery without exceptions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29789 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Reid Spencer 2006-08-21 06:00:58 +00:00
parent 037ce981d8
commit d2a8e656c5

View File

@ -49,10 +49,7 @@ namespace sys {
/// called then a std::string is thrown. /// called then a std::string is thrown.
/// @returns an integer result code indicating the status of the program. /// @returns an integer result code indicating the status of the program.
/// A zero or positive value indicates the result code of the program. A /// A zero or positive value indicates the result code of the program. A
/// negative value is the signal number on which it terminated. A value of /// negative value is the signal number on which it terminated.
/// -9999 indicates the program could not be executed.
/// @throws std::string on a variety of error conditions or if the invoked
/// program aborted abnormally.
/// @see FindProgrambyName /// @see FindProgrambyName
/// @brief Executes the program with the given set of \p args. /// @brief Executes the program with the given set of \p args.
static int ExecuteAndWait( static int ExecuteAndWait(
@ -70,16 +67,21 @@ namespace sys {
///< should have a size of at least three. If the pointer in the array ///< should have a size of at least three. If the pointer in the array
///< are not null, then the inferior process's stdin(0), stdout(1), ///< are not null, then the inferior process's stdin(0), stdout(1),
///< and stderr(2) will be redirected to the corresponding Paths. ///< and stderr(2) will be redirected to the corresponding Paths.
unsigned secondsToWait = 0 ///< If non-zero, this specifies the amount unsigned secondsToWait = 0, ///< If non-zero, this specifies the amount
///< of time to wait for the child process to exit. If the time ///< of time to wait for the child process to exit. If the time
///< expires, the child is killed and this call returns. If zero, ///< expires, the child is killed and this call returns. If zero,
///< this function will wait until the child finishes or forever if ///< this function will wait until the child finishes or forever if
///< it doesn't. ///< it doesn't.
std::string* ErrMsg = 0 ///< If non-zero, provides a pointer to a string
///< instance in which error messages will be returned. If the string
///< is non-empty upon return an error occurred while invoking the
///< program.
); );
// These methods change the specified standard stream (stdin or stdout) to // These methods change the specified standard stream (stdin or stdout) to
// binary mode. // binary mode. They return true if an error occurred
static void ChangeStdinToBinary(); static bool ChangeStdinToBinary();
static void ChangeStdoutToBinary(); static bool ChangeStdoutToBinary();
/// @}
}; };
} }
} }