xdg_basedir :: XdgBasedir :: defaultinit
# Handle to a local cache of XDG base directories
extern class XdgBasedir `{ xdgHandle* `}
# Initialize a handle to an XDG data cache and initialize the cache.
new `{ return xdgInitHandle(NULL); `}
# Has this instance been correctly initialized?
fun is_valid: Bool do return not address_is_null
# Wipe handle of XDG data cache.
fun destroy `{ xdgWipeHandle(self); `}
# Update the data cache.
#
# This should not be done frequently as it reallocates the cache.
# Even if updating the cache fails the handle remains valid and can
# be used to access XDG data as it was before `update` was called.
#
# Returns `true` if the update was successful.
fun update: Bool `{ return xdgUpdateData(self); `}
# Base directory for user specific data files.
fun data_home: String import CString.to_s `{
return CString_to_s((char*)xdgDataHome(self));
`}
# Base directory for user specific configuration files.
fun config_home: String import CString.to_s `{
return CString_to_s((char*)xdgConfigHome(self));
`}
# Base directory for user specific non-essential data files.
fun cache_home: String import CString.to_s `{
return CString_to_s((char*)xdgCacheHome(self));
`}
# Preference-ordered set of base directories to search for data files
# in addition to the $XDG_DATA_HOME base directory.
fun data_dirs: Array[String] do return native_data_dirs.to_string_array
private fun native_data_dirs: ConstPointer `{
return xdgDataDirectories(self);
`}
# Preference-ordered set of base directories to search for data files
# with $XDG_DATA_HOME prepended.
#
# The base directory defined by $XDG_DATA_HOME is considered more
# important than any of the base directories defined by $XDG_DATA_DIRS.
fun searchable_data_dirs: Array[String]
do
return native_searchable_data_dirs.to_string_array
end
private fun native_searchable_data_dirs: ConstPointer `{
return xdgSearchableDataDirectories(self);
`}
# Preference-ordered set of base directories to search for configuration
# files in addition to the $XDG_CONFIG_HOME base directory.
fun config_dirs: Array[String] do return native_config_dirs.to_string_array
private fun native_config_dirs: ConstPointer `{
return xdgConfigDirectories(self);
`}
# Preference-ordered set of base directories to search for configuration
# files with $XDG_CONFIG_HOME prepended.
#
# The base directory defined by $XDG_CONFIG_HOME is considered more
# important than any of the base directories defined by $XDG_CONFIG_DIRS.
fun searchable_config_dirs: Array[String]
do
return native_searchable_config_dirs.to_string_array
end
private fun native_searchable_config_dirs: ConstPointer `{
return xdgSearchableConfigDirectories(self);
`}
end
lib/xdg_basedir/xdg_basedir.nit:30,1--109,3