10#ifndef __stir_UTILITIES_H__
11#define __stir_UTILITIES_H__
33template <
class NUMBER>
34inline NUMBER
ask_num(
const std::string& prompt, NUMBER minimum_value, NUMBER maximum_value, NUMBER default_value);
37std::string
ask_string(
const std::string& prompt,
const std::string& default_value =
"");
54bool ask(
const std::string& prompt,
bool default_value);
104template <
class FSTREAM>
105void ask_filename_and_open(
106 FSTREAM& s,
const std::string& prompt,
const std::string& default_extension, std::ios::openmode mode,
bool abort_if_failed);
109template <
class FSTREAM>
110void inline ask_filename_and_open(FSTREAM& s,
111 const std::string& prompt,
112 const std::string& default_extension,
113 std::ios::openmode mode)
115 ask_filename_and_open(s, prompt, default_extension, mode,
true);
136void* read_stream_in_memory(std::istream& input, std::streamsize& file_size);
149template <
class IFSTREAM>
160template <
class OFSTREAM>
173template <
class FSTREAM>
213extern const char*
find_filename(
const char*
const filename_with_directory);
228std::string
get_filename(
const std::string& filename_with_directory);
240char*
get_directory_name(
char* directory_name,
const char*
const filename_with_directory);
306 const char *
const extension);
310std::string&
add_extension(std::string& file_in_directory_name,
const std::string& extension);
333 const char *
const extension);
337std::string&
replace_extension(std::string& file_in_directory_name,
const std::string& extension);
349inline char*
strupr(
char*
const str);
351# define strupr _strupr
basic configuration include file
void close_file(FILE *&fptr)
closes a FILE without error checking.
Definition utilities.cxx:101
FILE *& open_write_binary(FILE *&fptr, const string &name)
opens a FILE for writing binary data. Calls error() when it does not succeed.
Definition utilities.cxx:90
streamsize find_remaining_size(istream &input)
Find number of remaining characters in the stream.
Definition utilities.cxx:379
const int max_filename_length
some large value to say how long filenames can be in the (deprecated) function ask_filename_with_exte...
Definition utilities.h:191
FILE *& open_read_binary(FILE *&fptr, const string &name)
opens a FILE for reading binary data. Calls error() when it does not succeed.
Definition utilities.cxx:79
char * strupr(char *const str)
make C-string uppercase
Definition utilities.inl:95
const char * find_filename(const char *const filename_with_directory)
return a pointer to the start of the filename (i.e. after directory specifications)
Definition utilities.cxx:108
char * prepend_directory_name(char *filename_with_directory, const char *const directory_name)
Prepend directory_name to the filename, but only if !is_absolute_pathname(filename_with_directory)
Definition utilities.cxx:285
char * get_directory_name(char *directory_name, const char *const filename_with_directory)
Copies the directory part from 'filename_with_directory' into 'directory_name' and returns the 'direc...
Definition utilities.cxx:167
string::size_type find_pos_of_filename(const string &filename_with_directory)
return the position of the start of the filename (i.e. after directory specifications)
Definition utilities.cxx:135
string & add_extension(string &file_in_directory_name, const string &extension)
Append extension if none present.
Definition utilities.cxx:209
string ask_filename_with_extension(const string &prompt, const string &default_extension)
Asks for a filename (appending an extension if none is provided).
Definition utilities.cxx:332
string & replace_extension(string &file_in_directory_name, const string &extension)
Replace extension (or append if none present)
Definition utilities.cxx:236
string ask_string(const string &str, const string &default_value)
A function to ask a string from the user.
Definition utilities.cxx:67
string get_filename(const string &filename_with_directory)
return a std::string containing only the filename (i.e. after directory specifications)
Definition utilities.cxx:161
bool ask(const string &str, bool default_value)
A function to ask a yes/no question from the user.
Definition utilities.cxx:41
string::size_type find_pos_of_extension(const string &file_in_directory_name)
find the position of the '.' of the extension
Definition utilities.cxx:185
bool is_absolute_pathname(const char *const filename_with_directory)
Checks if the filename points to an absolute location, or is a relative (e.g. to current directory) p...
Definition utilities.cxx:247
NUMBER ask_num(const std::string &prompt, NUMBER minimum_value, NUMBER maximum_value, NUMBER default_value)
A function to ask a number from the user.
Definition utilities.inl:33
inline implementations for utility.h