/*
 * Copyright © 2007 Keith Packard
 *
 * Permission to use, copy, modify, distribute, and sell this software and its
 * documentation for any purpose is hereby granted without fee, provided that
 * the above copyright notice appear in all copies and that both that copyright
 * notice and this permission notice appear in supporting documentation, and
 * that the name of the copyright holders not be used in advertising or
 * publicity pertaining to distribution of the software without specific,
 * written prior permission.  The copyright holders make no representations
 * about the suitability of this software for any purpose.  It is provided "as
 * is" without express or implied warranty.
 *
 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
 * EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
 * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 * OF THIS SOFTWARE.
 */

@RET@		FcBool
@FUNC@		FcDirCacheUnlink
@TYPE1@		const FcChar8 *			@ARG1@		dir
@TYPE2@		FcConfig *			@ARG2@		config
@PURPOSE@	Remove all caches related to <parameter>dir</parameter>
@DESC@
Scans the cache directories in <parameter>config</parameter>, removing any
instances of the cache file for <parameter>dir</parameter>. Returns FcFalse
when some internal error occurs (out of memory, etc). Errors actually
unlinking any files are ignored.
@@

@RET@		FcBool 	
@FUNC@		FcDirCacheValid 
@TYPE1@		const FcChar8 *			@ARG1@		dir
@PURPOSE@	check directory cache 
@DESC@
Returns FcTrue if <parameter>dir</parameter> has an associated valid cache
file, else returns FcFalse
@@

@RET@		FcCache *
@FUNC@		FcDirCacheLoad
@TYPE1@		const FcChar8 *			@ARG1@		dir
@TYPE2@		FcConfig *			@ARG2@		config
@TYPE3@		FcChar8 **			@ARG3@		cache_file
@PURPOSE@	load a directory cache
@DESC@
Loads the cache related to <parameter>dir</parameter>. If no cache file
exists, returns NULL. The name of the cache file is returned in
<parameter>cache_file</parameter>, unless that is NULL. See also
FcDirCacheRead.
@@

@RET@		FcCache *
@FUNC@		FcDirCacheRescan
@TYPE1@		const FcChar8 *			@ARG1@		dir
@TYPE2@		FcConfig *    			@ARG2@		config
@PURPOSE@	Re-scan a directory cache
@DESC@
Re-scan directories only at <parameter>dir</parameter> and update the cache.
returns NULL if failed.
@SINCE@		2.11.1
@@

@RET@		FcCache *
@FUNC@		FcDirCacheRead
@TYPE1@		const FcChar8 *			@ARG1@		dir
@TYPE2@		FcBool%				@ARG2@		force
@TYPE3@		FcConfig *			@ARG3@		config
@PURPOSE@	read or construct a directory cache
@DESC@
This returns a cache for <parameter>dir</parameter>. If
<parameter>force</parameter> is FcFalse, then an existing, valid cache file
will be used. Otherwise, a new cache will be created by scanning the
directory and that returned.
@@

@RET@		FcCache *
@FUNC@		FcDirCacheLoadFile
@TYPE1@		const FcChar8 *			@ARG1@		cache_file
@TYPE2@		struct stat *			@ARG2@		file_stat
@PURPOSE@	load a cache file
@DESC@
This function loads a directory cache from
<parameter>cache_file</parameter>. If <parameter>file_stat</parameter> is
non-NULL, it will be filled with the results of stat(2) on the cache file.
@@

@RET@		void
@FUNC@		FcDirCacheUnload
@TYPE1@		FcCache *			@ARG1@		cache
@PURPOSE@	unload a cache file
@DESC@
This function dereferences <parameter>cache</parameter>. When no other
references to it remain, all memory associated with the cache will be freed.
@@
