X-Git-Url: https://git.street.me.uk/andy/viking.git/blobdiff_plain/0807f24b93a16a16ce593deaa3aa182de952a2ed..9215988610c6aa36b971b8a2b981db90fff1002b:/src/download.h?ds=sidebyside diff --git a/src/download.h b/src/download.h index 91caa9de..43ecdd2c 100644 --- a/src/download.h +++ b/src/download.h @@ -32,6 +32,9 @@ typedef gboolean (*VikFileContentCheckerFunc) (FILE*); gboolean a_check_map_file(FILE*); gboolean a_check_html_file(FILE*); gboolean a_check_kml_file(FILE*); +// Convert +void a_try_decompress_file (gchar *name); +typedef void (*VikFileContentConvertFunc) (gchar*); // filename (temporary) typedef struct { /** @@ -68,6 +71,11 @@ typedef struct { */ gchar *user_pass; + /** + * File manipulation if necessary such as uncompressing the downloaded file. + */ + VikFileContentConvertFunc convert_file; + } DownloadMapOptions; typedef struct { @@ -88,19 +96,22 @@ typedef struct { void a_download_init(void); +typedef enum { + DOWNLOAD_FILE_WRITE_ERROR = -4, // Can't write downloaded file :( + DOWNLOAD_HTTP_ERROR = -2, + DOWNLOAD_CONTENT_ERROR = -1, + DOWNLOAD_SUCCESS = 0, + DOWNLOAD_NOT_REQUIRED = 1, // Also 'successful'. e.g. Because file already exists and no time checks used +} DownloadResult_t; + /* TODO: convert to Glib */ -int a_http_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); -int a_ftp_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); +DownloadResult_t a_http_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); +DownloadResult_t a_ftp_download_get_url ( const char *hostname, const char *uri, const char *fn, DownloadMapOptions *opt, void *handle ); void *a_download_handle_init (); void a_download_handle_cleanup ( void *handle ); gchar *a_download_uri_to_tmp_file ( const gchar *uri, DownloadMapOptions *options ); -/* Error messages returned by download functions */ -enum { DOWNLOAD_NO_ERROR = 0, - DOWNLOAD_NO_NEWER_FILE, - DOWNLOAD_ERROR }; - G_END_DECLS #endif