]> Pileus Git - aweather/blobdiff - src/data.h
Download progress bars
[aweather] / src / data.h
index 994384bf76aa8d136360e3f6985d2fcf3b62e4db..f08f9365c335125abfa773eb29df70a1217cfbe4 100644 (file)
 #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