The Battle for Wesnoth  1.13.4+dev
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Classes | Enumerations | Functions | Variables
filesystem Namespace Reference

Classes

struct  binary_paths_manager
 The paths manager is responsible for recording the various paths that binary files may be located at. More...
 
struct  file_tree_checksum
 
struct  io_exception
 An exception object used when an IO error occurs. More...
 
struct  iostream_path
 
class  scoped_istream
 
class  scoped_ostream
 

Enumerations

enum  file_name_option { ENTIRE_FILE_PATH, FILE_NAME_ONLY }
 
enum  file_filter_option { NO_FILTER, SKIP_MEDIA_DIR, SKIP_PBL_FILES }
 
enum  file_reorder_option { DONT_REORDER, DO_REORDER }
 

Functions

SDL_RWops * load_RWops (const std::string &path)
 
void get_files_in_dir (const std::string &dir, std::vector< std::string > *files, std::vector< std::string > *dirs=nullptr, file_name_option mode=FILE_NAME_ONLY, file_filter_option filter=NO_FILTER, file_reorder_option reorder=DONT_REORDER, file_tree_checksum *checksum=nullptr)
 Populates 'files' with all the files and 'dirs' with all the directories in dir. More...
 
std::string get_dir (const std::string &dir)
 
std::string get_prefs_file ()
 
std::string get_default_prefs_file ()
 
std::string get_save_index_file ()
 
std::string get_saves_dir ()
 
std::string get_intl_dir ()
 
std::string get_screenshot_dir ()
 
std::string get_addons_dir ()
 
std::string get_next_filename (const std::string &name, const std::string &extension)
 Get the next free filename using "name + number (3 digits) + extension" maximum 1000 files then start always giving 999. More...
 
void set_user_config_dir (std::string path)
 
void set_user_data_dir (std::string path)
 
std::string get_user_config_dir ()
 
std::string get_user_data_dir ()
 
std::string get_cache_dir ()
 
std::string get_cwd ()
 
std::string get_exe_dir ()
 
bool make_directory (const std::string &dirname)
 
bool delete_directory (const std::string &dirname, const bool keep_pbl=false)
 
bool delete_file (const std::string &filename)
 
bool looks_like_pbl (const std::string &file)
 
std::string read_file (const std::string &fname)
 Basic disk I/O - read file. More...
 
std::istream * istream_file (const std::string &fname, bool treat_failure_as_error=true)
 
std::ostream * ostream_file (std::string const &fname, bool create_directory=true)
 
void write_file (const std::string &fname, const std::string &data)
 Throws io_exception if an error occurs. More...
 
std::string read_map (const std::string &name)
 
bool create_directory_if_missing (const std::string &dirname)
 Creates a directory if it does not exist already. More...
 
bool create_directory_if_missing_recursive (const std::string &dirname)
 Creates a recursive directory tree if it does not exist already. More...
 
bool is_directory (const std::string &fname)
 Returns true if the given file is a directory. More...
 
bool file_exists (const std::string &name)
 Returns true if a file or directory with such name already exists. More...
 
time_t file_modified_time (const std::string &fname)
 Get the modification time of a file. More...
 
bool is_gzip_file (const std::string &filename)
 Returns true if the file ends with '.gz'. More...
 
bool is_bzip2_file (const std::string &filename)
 Returns true if the file ends with '.bz2'. More...
 
bool is_compressed_file (const std::string &filename)
 
const file_tree_checksumdata_tree_checksum (bool reset=false)
 Get the time at which the data/ tree was last modified at. More...
 
int file_size (const std::string &fname)
 Returns the size of a file, or -1 if the file doesn't exist. More...
 
int dir_size (const std::string &path)
 Returns the sum of the sizes of the files contained in a directory. More...
 
bool ends_with (const std::string &str, const std::string &suffix)
 
std::string base_name (const std::string &file)
 Returns the base filename of a file, with directory name stripped. More...
 
std::string directory_name (const std::string &file)
 Returns the directory name of a file, with filename stripped. More...
 
std::string normalize_path (const std::string &path)
 Returns the absolute path of a file. More...
 
bool is_path_sep (char c)
 Returns whether c is a path separator. More...
 
void clear_binary_paths_cache ()
 
const std::vector< std::string > & get_binary_paths (const std::string &type)
 Returns a vector with all possible paths to a given type of binary, e.g. More...
 
std::string get_binary_file_location (const std::string &type, const std::string &filename)
 Returns a complete path to the actual file of a given type or an empty string if the file isn't present. More...
 
std::string get_binary_dir_location (const std::string &type, const std::string &filename)
 Returns a complete path to the actual directory of a given type or an empty string if the directory isn't present. More...
 
std::string get_wml_location (const std::string &filename, const std::string &current_dir=std::string())
 Returns a complete path to the actual WML file or directory or an empty string if the file isn't present. More...
 
std::string get_short_wml_path (const std::string &filename)
 Returns a short path to filename, skipping the (user) data directory. More...
 
std::string get_independent_image_path (const std::string &filename)
 Returns an image path to filename for binary path-independent use in saved games. More...
 
std::string get_program_invocation (const std::string &program_name)
 Returns the appropriate invocation for a Wesnoth-related binary, assuming that it is located in the same directory as the running wesnoth binary. More...
 
static void push_if_exists (std::vector< std::string > *vec, const path &file, bool full)
 
static bool error_except_not_found (const error_code &ec)
 
static bool is_directory_internal (const path &fpath)
 
static bool file_exists (const path &fpath)
 
static path get_dir (const path &dirpath)
 
static bool create_directory_if_missing (const path &dirpath)
 
static bool create_directory_if_missing_recursive (const path &dirpath)
 
static const std::stringget_version_path_suffix ()
 
static void setup_user_data_dir ()
 
static void set_user_config_path (path newconfig)
 
static const pathget_user_data_path ()
 
static void init_binary_paths ()
 
static bool is_legal_file (const std::string &filename)
 
static path subtract_path (const path &full, const path &prefix)
 
static void get_file_tree_checksum_internal (const std::string &path, file_tree_checksum &res)
 
static Sint64 ifs_size (struct SDL_RWops *context)
 
static Sint64 SDLCALL ifs_seek (struct SDL_RWops *context, Sint64 offset, int whence)
 
static size_t SDLCALL ifs_read (struct SDL_RWops *context, void *ptr, size_t size, size_t maxnum)
 
static size_t SDLCALL ifs_write (struct SDL_RWops *context, const void *ptr, size_t size, size_t num)
 
static int SDLCALL ifs_close (struct SDL_RWops *context)
 

Variables

static path user_data_dir
 
static path user_config_dir
 
static path cache_dir
 

Enumeration Type Documentation

Enumerator
NO_FILTER 
SKIP_MEDIA_DIR 
SKIP_PBL_FILES 

Definition at line 48 of file filesystem.hpp.

Enumerator
ENTIRE_FILE_PATH 
FILE_NAME_ONLY 

Definition at line 47 of file filesystem.hpp.

Enumerator
DONT_REORDER 
DO_REORDER 

Definition at line 49 of file filesystem.hpp.

Function Documentation

std::string filesystem::base_name ( const std::string file)
void filesystem::clear_binary_paths_cache ( )
bool filesystem::create_directory_if_missing ( const std::string dirname)

Creates a directory if it does not exist already.

Parameters
dirnamePath to directory. All parents should exist.
Returns
True if the directory exists or could be successfully created; false otherwise.

Definition at line 862 of file filesystem_boost.cpp.

Referenced by create_directory_if_missing_recursive(), set_user_data_dir(), and setup_user_data_dir().

static bool filesystem::create_directory_if_missing ( const path dirpath)
static
bool filesystem::create_directory_if_missing_recursive ( const std::string dirname)

Creates a recursive directory tree if it does not exist already.

Parameters
dirnameFull path of target directory. Non existing parents will be created
Returns
True if the directory exists or could be successfully created; false otherwise.

Definition at line 866 of file filesystem_boost.cpp.

Referenced by create_directory_if_missing_recursive(), get_cache_dir(), preprocess_resource(), set_user_config_path(), and setup_user_data_dir().

static bool filesystem::create_directory_if_missing_recursive ( const path dirpath)
static
const file_tree_checksum & filesystem::data_tree_checksum ( bool  reset = false)
bool filesystem::delete_directory ( const std::string dirname,
const bool  keep_pbl = false 
)
bool filesystem::delete_file ( const std::string filename)
int filesystem::dir_size ( const std::string path)

Returns the sum of the sizes of the files contained in a directory.

Definition at line 914 of file filesystem_boost.cpp.

References file_size(), i, and LOG_FS.

Referenced by gui2::tgame_cache_options::update_cache_size_display().

std::string filesystem::directory_name ( const std::string file)
bool filesystem::ends_with ( const std::string str,
const std::string suffix 
)
static bool filesystem::error_except_not_found ( const error_code &  ec)
inlinestatic
bool filesystem::file_exists ( const std::string name)
static bool filesystem::file_exists ( const path fpath)
static

Definition at line 229 of file filesystem_boost.cpp.

References ERR_FS, error_except_not_found(), and image::exists().

time_t filesystem::file_modified_time ( const std::string fname)

Get the modification time of a file.

Definition at line 881 of file filesystem_boost.cpp.

References LOG_FS.

Referenced by savegame::create_save_info::operator()(), and savegame::save_index_class::rebuild().

int filesystem::file_size ( const std::string fname)
std::string filesystem::get_addons_dir ( )
std::string filesystem::get_binary_dir_location ( const std::string type,
const std::string filename 
)

Returns a complete path to the actual directory of a given type or an empty string if the directory isn't present.

Definition at line 1126 of file filesystem_boost.cpp.

References DBG_FS, get_binary_paths(), is_directory_internal(), and is_legal_file().

Referenced by BOOST_AUTO_TEST_CASE(), and init_textdomains().

std::string filesystem::get_binary_file_location ( const std::string type,
const std::string filename 
)

Returns a complete path to the actual file of a given type or an empty string if the file isn't present.

Definition at line 1096 of file filesystem_boost.cpp.

References DBG_FS, file_exists(), get_binary_paths(), is_legal_file(), and pos.

Referenced by BOOST_AUTO_TEST_CASE(), image::exists(), image::locator::file_exists(), get_independent_image_path(), sound::load_chunk(), image::load_image_file(), image::localized_file_uptodate(), and sound::music_track::resolve().

const std::vector< std::string > & filesystem::get_binary_paths ( const std::string type)

Returns a vector with all possible paths to a given type of binary, e.g.

'images', 'sounds', etc,

Definition at line 1060 of file filesystem_boost.cpp.

References ERR_FS, get_user_data_dir(), init_binary_paths(), itor, and game_config::path.

Referenced by font::manager::deinit(), get_binary_dir_location(), get_binary_file_location(), font::manager::init(), and image::precache_file_existence().

std::string filesystem::get_cache_dir ( )
std::string filesystem::get_cwd ( )
std::string filesystem::get_default_prefs_file ( )
std::string filesystem::get_dir ( const std::string dir)
static path filesystem::get_dir ( const path dirpath)
static

Definition at line 238 of file filesystem_boost.cpp.

References ERR_FS, and is_directory_internal().

std::string filesystem::get_exe_dir ( )

Definition at line 672 of file filesystem_boost.cpp.

References image::exists(), and get_cwd().

Referenced by main().

static void filesystem::get_file_tree_checksum_internal ( const std::string path,
file_tree_checksum &  res 
)
static

Definition at line 173 of file filesystem_common.cpp.

References DONT_REORDER, ENTIRE_FILE_PATH, get_files_in_dir(), and SKIP_MEDIA_DIR.

Referenced by data_tree_checksum().

void filesystem::get_files_in_dir ( const std::string dir,
std::vector< std::string > *  files,
std::vector< std::string > *  dirs = nullptr,
file_name_option  mode = FILE_NAME_ONLY,
file_filter_option  filter = NO_FILTER,
file_reorder_option  reorder = DONT_REORDER,
file_tree_checksum *  checksum = nullptr 
)
std::string filesystem::get_independent_image_path ( const std::string filename)

Returns an image path to filename for binary path-independent use in saved games.

Example: units/konrad-fighter.png -> data/campaigns/Heir_To_The_Throne/images/units/konrad-fighter.png

Definition at line 1214 of file filesystem_boost.cpp.

References get_binary_file_location(), get_user_data_path(), preferences::editor::TransitionUpdateMode::partial, game_config::path, and subtract_path().

Referenced by BOOST_AUTO_TEST_CASE(), and savegame::extract_summary_from_config().

std::string filesystem::get_intl_dir ( )
std::string filesystem::get_next_filename ( const std::string name,
const std::string extension 
)

Get the next free filename using "name + number (3 digits) + extension" maximum 1000 files then start always giving 999.

Definition at line 429 of file filesystem_boost.cpp.

References file_exists(), and right.

std::string filesystem::get_prefs_file ( )
std::string filesystem::get_program_invocation ( const std::string program_name)

Returns the appropriate invocation for a Wesnoth-related binary, assuming that it is located in the same directory as the running wesnoth binary.

This is just a string-transformation based on argv[0], so the returned program is not guaranteed to actually exist. '-debug' variants are handled correctly.

Definition at line 1232 of file filesystem_boost.cpp.

References game_config::wesnoth_program_dir.

Referenced by game_launcher::start_wesnothd().

std::string filesystem::get_save_index_file ( )
std::string filesystem::get_saves_dir ( )
std::string filesystem::get_screenshot_dir ( )

Definition at line 118 of file filesystem_common.cpp.

References get_dir(), and get_user_data_dir().

std::string filesystem::get_short_wml_path ( const std::string filename)

Returns a short path to filename, skipping the (user) data directory.

Definition at line 1199 of file filesystem_boost.cpp.

References get_user_data_path(), preferences::editor::TransitionUpdateMode::partial, game_config::path, and subtract_path().

Referenced by preprocessor_file::preprocessor_file().

std::string filesystem::get_user_config_dir ( )
std::string filesystem::get_user_data_dir ( )
static const path& filesystem::get_user_data_path ( )
static
static const std::string& filesystem::get_version_path_suffix ( )
static
std::string filesystem::get_wml_location ( const std::string filename,
const std::string current_dir = std::string() 
)
static int SDLCALL filesystem::ifs_close ( struct SDL_RWops *  context)
static

Definition at line 108 of file filesystem_sdl.cpp.

Referenced by load_RWops().

static size_t SDLCALL filesystem::ifs_read ( struct SDL_RWops *  context,
void ptr,
size_t  size,
size_t  maxnum 
)
static

Definition at line 90 of file filesystem_sdl.cpp.

Referenced by load_RWops().

static Sint64 SDLCALL filesystem::ifs_seek ( struct SDL_RWops *  context,
Sint64  offset,
int  whence 
)
static

Definition at line 55 of file filesystem_sdl.cpp.

References pos.

Referenced by load_RWops().

static Sint64 filesystem::ifs_size ( struct SDL_RWops *  context)
static

Definition at line 41 of file filesystem_sdl.cpp.

Referenced by load_RWops().

static size_t SDLCALL filesystem::ifs_write ( struct SDL_RWops *  context,
const void ptr,
size_t  size,
size_t  num 
)
static

Definition at line 104 of file filesystem_sdl.cpp.

Referenced by load_RWops().

static void filesystem::init_binary_paths ( )
static
bool filesystem::is_bzip2_file ( const std::string filename)

Returns true if the file ends with '.bz2'.

Definition at line 896 of file filesystem_boost.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), is_compressed_file(), process_command_args(), and savegame::read_save_file().

bool filesystem::is_compressed_file ( const std::string filename)
inline

Definition at line 144 of file filesystem.hpp.

References is_bzip2_file(), and is_gzip_file().

Referenced by BOOST_AUTO_TEST_CASE(), and savegame::savegame::check_filename().

bool filesystem::is_directory ( const std::string fname)
static bool filesystem::is_directory_internal ( const path fpath)
static
bool filesystem::is_gzip_file ( const std::string filename)

Returns true if the file ends with '.gz'.

Definition at line 891 of file filesystem_boost.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), is_compressed_file(), process_command_args(), and savegame::read_save_file().

static bool filesystem::is_legal_file ( const std::string filename)
static
bool filesystem::is_path_sep ( char  c)

Returns whether c is a path separator.

Note
/ is always a path separator. Additionally, on Windows \ is a path separator as well.

Definition at line 943 of file filesystem_boost.cpp.

std::istream * filesystem::istream_file ( const std::string fname,
bool  treat_failure_as_error = true 
)
SDL_RWops * filesystem::load_RWops ( const std::string path)
bool filesystem::looks_like_pbl ( const std::string file)
bool filesystem::make_directory ( const std::string dirname)
std::string filesystem::normalize_path ( const std::string path)

Returns the absolute path of a file.

Definition at line 949 of file filesystem_boost.cpp.

Referenced by game_launcher::goto_editor(), and main().

std::ostream * filesystem::ostream_file ( std::string const &  fname,
bool  create_directory = true 
)
static void filesystem::push_if_exists ( std::vector< std::string > *  vec,
const path file,
bool  full 
)
static

Definition at line 200 of file filesystem_boost.cpp.

Referenced by get_files_in_dir().

std::string filesystem::read_file ( const std::string fname)
std::string filesystem::read_map ( const std::string name)
void filesystem::set_user_config_dir ( std::string  path)

Definition at line 598 of file filesystem_boost.cpp.

References set_user_config_path().

Referenced by process_command_args().

static void filesystem::set_user_config_path ( path  newconfig)
static
void filesystem::set_user_data_dir ( std::string  path)
static void filesystem::setup_user_data_dir ( )
static
static path filesystem::subtract_path ( const path full,
const path prefix 
)
static

Definition at line 1180 of file filesystem_boost.cpp.

Referenced by get_independent_image_path(), and get_short_wml_path().

void filesystem::write_file ( const std::string fname,
const std::string data 
)

Variable Documentation

path filesystem::cache_dir
static

Definition at line 448 of file filesystem_boost.cpp.

path filesystem::user_config_dir
static

Definition at line 448 of file filesystem_boost.cpp.

path filesystem::user_data_dir
static

Definition at line 448 of file filesystem_boost.cpp.

Referenced by get_user_data_path().