#ifndef __DATA_H__
#define __DATA_H__
-typedef void (*AWeatherCacheDoneCallback)(gchar *file, gpointer user_data);
+#include <libsoup/soup.h>
-void cache_file(char *base, char *path, AWeatherCacheDoneCallback callback, gpointer user_data);
+typedef enum {
+ AWEATHER_ONCE, // Cache the file if it does not exist
+ AWEATHER_UPDATE, // Append additional data to cached copy (resume)
+ AWEATHER_REFRESH, // Delete existing file and cache a new copy
+} AWeatherCacheType;
+
+typedef void (*AWeatherCacheDoneCallback)(gchar *file, gboolean updated,
+ gpointer user_data);
+
+typedef void (*AWeatherCacheChunkCallback)(gchar *file, goffset cur,
+ goffset total, gpointer user_data);
+
+SoupSession *cache_file(char *base, char *path, AWeatherCacheType update,
+ AWeatherCacheChunkCallback user_chunk_cb,
+ AWeatherCacheDoneCallback user_done_cb,
+ gpointer user_data);
#endif