X-Git-Url: http://pileus.org/git/?p=grits;a=blobdiff_plain;f=src%2Fdata%2Fgis-data.h;h=671280dd72648539cb636877e35cbdeb9ba4a339;hp=a065650f2973d839e14263504a1687bc79b9d0a5;hb=25e9fd85ed1dbf7e4695a9cac456eee73362f6a1;hpb=c6b75d03c13b03911e8bc4df46054caa1ace5a0a diff --git a/src/data/gis-data.h b/src/data/gis-data.h index a065650..671280d 100644 --- a/src/data/gis-data.h +++ b/src/data/gis-data.h @@ -15,27 +15,40 @@ * along with this program. If not, see . */ -#ifndef __DATA_H__ -#define __DATA_H__ +#ifndef __GIS_DATA_H__ +#define __GIS_DATA_H__ -#include +#include +/** + * GisCacheType: + * @GIS_LOCAL: Only return local files (for offline mode) + * @GIS_ONCE: Download the file only if it does not exist + * @GIS_UPDATE: Update the file to be like the server + * @GIS_REFRESH: Delete the existing file and fetch a new copy + * + * Various methods for caching data + */ typedef enum { - GIS_NEVER, // Never cache the file (for offline mode) - GIS_ONCE, // Cache the file if it does not exist - GIS_UPDATE, // Append additional data to cached copy (resume) - GIS_REFRESH, // Delete existing file and cache a new copy -} GisDataCacheType; - -typedef void (*GisDataCacheDoneCallback)(gchar *file, gboolean updated, - gpointer user_data); + GIS_LOCAL, + GIS_ONCE, + GIS_UPDATE, + GIS_REFRESH, +} GisCacheType; -typedef void (*GisDataCacheChunkCallback)(gchar *file, goffset cur, +/** + * GisChunkCallback: + * @file: path to the file which is being fetched + * @cur: current offset in the file + * @total: total size of the file + * @user_data: the user_data argument passed to the function + * + * Function called when part of a file is fetched + * Used for updating progress bars, etc + */ +typedef void (*GisChunkCallback)(gchar *file, goffset cur, goffset total, gpointer user_data); -SoupSession *cache_file(char *base, char *path, GisDataCacheType update, - GisDataCacheChunkCallback user_chunk_cb, - GisDataCacheDoneCallback user_done_cb, - gpointer user_data); +FILE *fopen_p(const gchar *path, const gchar *mode); #endif