Property definitions

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