]> Pileus Git - grits/blobdiff - src/data/gis-data.h
Document GisData
[grits] / src / data / gis-data.h
index a065650f2973d839e14263504a1687bc79b9d0a5..671280dd72648539cb636877e35cbdeb9ba4a339 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-#ifndef __DATA_H__
-#define __DATA_H__
+#ifndef __GIS_DATA_H__
+#define __GIS_DATA_H__
 
-#include <libsoup/soup.h>
+#include <glib.h>
 
+/**
+ * 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