1563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark/* 2563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2008 Collabora Ltd. 3563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Copyright (C) 2009 Gustavo Noronha Silva <gns@gnome.org> 4563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 5563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * This library is free software; you can redistribute it and/or 6563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * modify it under the terms of the GNU Library General Public 7563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * License as published by the Free Software Foundation; either 8563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * version 2 of the License, or (at your option) any later version. 9563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 10563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * This library is distributed in the hope that it will be useful, 11563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * but WITHOUT ANY WARRANTY; without even the implied warranty of 12563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Library General Public License for more details. 14563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * 15563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * You should have received a copy of the GNU Library General Public License 16563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * along with this library; see the file COPYING.LIB. If not, write to 17563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 18563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark * Boston, MA 02110-1301, USA. 19563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark */ 20563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 21231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#ifndef webkitdownload_h 22231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block#define webkitdownload_h 23563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 24563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <webkit/webkitdefines.h> 25563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 26563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#include <glib-object.h> 27563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 28563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkG_BEGIN_DECLS 29563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 30563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_TYPE_DOWNLOAD (webkit_download_get_type()) 31563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_DOWNLOAD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), WEBKIT_TYPE_DOWNLOAD, WebKitDownload)) 32563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_DOWNLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), WEBKIT_TYPE_DOWNLOAD, WebKitDownloadClass)) 33563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_IS_DOWNLOAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), WEBKIT_TYPE_DOWNLOAD)) 34563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_IS_DOWNLOAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), WEBKIT_TYPE_DOWNLOAD)) 35563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#define WEBKIT_DOWNLOAD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), WEBKIT_TYPE_DOWNLOAD, WebKitDownloadClass)) 36563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 37563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarktypedef enum { 38563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_STATUS_ERROR = -1, 39563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_STATUS_CREATED = 0, 40563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_STATUS_STARTED, 41563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_STATUS_CANCELLED, 42563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_STATUS_FINISHED 43563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} WebKitDownloadStatus; 44563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 45563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarktypedef enum { 46563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_ERROR_CANCELLED_BY_USER, 47563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_ERROR_DESTINATION, 48563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WEBKIT_DOWNLOAD_ERROR_NETWORK 49563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark} WebKitDownloadError; 50563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 51563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarktypedef struct _WebKitDownloadPrivate WebKitDownloadPrivate; 52563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 53563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstruct _WebKitDownload { 54563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark GObject parent_instance; 55563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 56563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark WebKitDownloadPrivate *priv; 57563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark}; 58563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 59563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkstruct _WebKitDownloadClass { 60563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark GObjectClass parent_class; 61563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 62563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark /* Padding for future expansion */ 63563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void (*_webkit_reserved0) (void); 64563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void (*_webkit_reserved1) (void); 65563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void (*_webkit_reserved2) (void); 66563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark void (*_webkit_reserved3) (void); 67563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark}; 68563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 69563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API GType 70563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_type (void); 71563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 72563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API WebKitDownload* 73563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_new (WebKitNetworkRequest *request); 74563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 75563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API void 76563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_start (WebKitDownload *download); 77563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 78563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API void 79563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_cancel (WebKitDownload *download); 80563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 81563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API const gchar* 82563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_uri (WebKitDownload *download); 83563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 84563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API WebKitNetworkRequest* 85563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_network_request (WebKitDownload *download); 86563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 87cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve BlockWEBKIT_API WebKitNetworkResponse* 88cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Blockwebkit_download_get_network_response (WebKitDownload *download); 89cac0f67c402d107cdb10971b95719e2ff9c7c76bSteve Block 90563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API const gchar* 91563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_suggested_filename (WebKitDownload *download); 92563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 93563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API const gchar* 94563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_destination_uri (WebKitDownload *download); 95563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 96563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API void 97563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_set_destination_uri (WebKitDownload *download, 98563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark const gchar *destination_uri); 99563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 100563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API gdouble 101563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_progress (WebKitDownload *download); 102563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 103563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API gdouble 104563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_elapsed_time (WebKitDownload *download); 105563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 106563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API guint64 107563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_total_size (WebKitDownload *download); 108563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 109563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API guint64 110563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_current_size (WebKitDownload *download); 111563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 112563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkWEBKIT_API WebKitDownloadStatus 113563af33bc48281d19dce701398dbb88cb54fd7ecCary Clarkwebkit_download_get_status (WebKitDownload *download); 114563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 115563af33bc48281d19dce701398dbb88cb54fd7ecCary ClarkG_END_DECLS 116563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark 117563af33bc48281d19dce701398dbb88cb54fd7ecCary Clark#endif 118