|
Packit |
67b98c |
/*
|
|
Packit |
67b98c |
* Copyright (C) 2010, 2011 Igalia S.L.
|
|
Packit |
67b98c |
* Copyright (C) 2012 Canonical Ltd.
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* Contact: Iago Toral Quiroga <itoral@igalia.com>
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* Authors: Víctor M. Jáquez L. <vjaquez@igalia.com>
|
|
Packit |
67b98c |
* Jens Georg <jensg@openismus.com>
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* This library is free software; you can redistribute it and/or
|
|
Packit |
67b98c |
* modify it under the terms of the GNU Lesser General Public License
|
|
Packit |
67b98c |
* as published by the Free Software Foundation; version 2.1 of
|
|
Packit |
67b98c |
* the License, or (at your option) any later version.
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* This library is distributed in the hope that it will be useful, but
|
|
Packit |
67b98c |
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
67b98c |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
67b98c |
* Lesser General Public License for more details.
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit |
67b98c |
* License along with this library; if not, write to the Free Software
|
|
Packit |
67b98c |
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
Packit |
67b98c |
* 02110-1301 USA
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
*/
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#ifndef _GRL_NET_WC_H_
|
|
Packit |
67b98c |
#define _GRL_NET_WC_H_
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#include <gio/gio.h>
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
G_BEGIN_DECLS
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
/**
|
|
Packit |
67b98c |
* GrlNetWcError:
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_UNAVAILABLE: Deprecated. For generic errors, you
|
|
Packit |
67b98c |
* should check for G_IO_ERROR_FAILED from G_IO_ERROR domain.
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_PROTOCOL_ERROR: Invalid URI or header
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_AUTHENTICATION_REQUIRED: Required authentication
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_NOT_FOUND: Request resource not found
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_CONFLICT: The entry has been modified since is was
|
|
Packit |
67b98c |
* downloaded
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_FORBIDDEN: TBD
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_NETWORK_ERROR: Cannot connect to the server
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_PROXY_ERROR: Deprecated. You should check for
|
|
Packit |
67b98c |
* G_IO_ERROR_PROXY_FAILED from G_IO_ERROR domain.
|
|
Packit |
67b98c |
* @GRL_NET_WC_ERROR_CANCELLED: Deprecated. You should check for
|
|
Packit |
67b98c |
* G_IO_ERROR_CANCELLED from G_IO_ERROR domain.
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* These constants identify all the available errors managed by
|
|
Packit |
67b98c |
* the web client.
|
|
Packit |
67b98c |
*/
|
|
Packit |
67b98c |
typedef enum {
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_UNAVAILABLE = 1,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_PROTOCOL_ERROR,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_AUTHENTICATION_REQUIRED,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_NOT_FOUND,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_CONFLICT,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_FORBIDDEN,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_NETWORK_ERROR,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_PROXY_ERROR,
|
|
Packit |
67b98c |
GRL_NET_WC_ERROR_CANCELLED
|
|
Packit |
67b98c |
} GrlNetWcError;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_TYPE_NET_WC \
|
|
Packit |
67b98c |
(grl_net_wc_get_type ())
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_NET_WC(obj) \
|
|
Packit |
67b98c |
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GRL_TYPE_NET_WC, GrlNetWc))
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_IS_NET_WC(obj) \
|
|
Packit |
67b98c |
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GRL_TYPE_NET_WC))
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_NET_WC_CLASS(klass) \
|
|
Packit |
67b98c |
(G_TYPE_CHECK_CLASS_CAST((klass), GRL_TYPE_NET_WC, GrlNetWcClass))
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_IS_NET_WC_CLASS(klass) \
|
|
Packit |
67b98c |
(G_TYPE_CHECK_CLASS_TYPE((klass), GRL_TYPE_NET_WC))
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_NET_WC_GET_CLASS(obj) \
|
|
Packit |
67b98c |
(G_TYPE_INSTANCE_GET_CLASS ((obj), GRL_TYPE_NET_WC, GrlNetWcClass))
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#define GRL_NET_WC_ERROR grl_net_wc_error_quark ()
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
typedef struct _GrlNetWc GrlNetWc;
|
|
Packit |
67b98c |
typedef struct _GrlNetWcClass GrlNetWcClass;
|
|
Packit |
67b98c |
typedef struct _GrlNetWcPrivate GrlNetWcPrivate;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
G_DEFINE_AUTOPTR_CLEANUP_FUNC (GrlNetWc, g_object_unref)
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
/**
|
|
Packit |
67b98c |
* GrlNetWc:
|
|
Packit |
67b98c |
* @parent: the parent object struct
|
|
Packit |
67b98c |
*/
|
|
Packit |
67b98c |
struct _GrlNetWc
|
|
Packit |
67b98c |
{
|
|
Packit |
67b98c |
GObject parent;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
/*< private >*/
|
|
Packit |
67b98c |
GrlNetWcPrivate *priv;
|
|
Packit |
67b98c |
};
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
/**
|
|
Packit |
67b98c |
* GrlNetWcClass:
|
|
Packit |
67b98c |
* @parent_class: the parent class structure
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* Grilo web client helper class.
|
|
Packit |
67b98c |
*
|
|
Packit |
67b98c |
* It's a simple and thin web client to be used by the sources to download
|
|
Packit |
67b98c |
* content from Internet.
|
|
Packit |
67b98c |
*/
|
|
Packit |
67b98c |
struct _GrlNetWcClass
|
|
Packit |
67b98c |
{
|
|
Packit |
67b98c |
GObjectClass parent_class;
|
|
Packit |
67b98c |
};
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
GType grl_net_wc_get_type (void) G_GNUC_CONST;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
GQuark grl_net_wc_error_quark (void) G_GNUC_CONST;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
GrlNetWc *grl_net_wc_new (void);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_request_async (GrlNetWc *self,
|
|
Packit |
67b98c |
const char *uri,
|
|
Packit |
67b98c |
GCancellable *cancellable,
|
|
Packit |
67b98c |
GAsyncReadyCallback callback,
|
|
Packit |
67b98c |
gpointer user_data);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_request_with_headers_hash_async (GrlNetWc *self,
|
|
Packit |
67b98c |
const char *uri,
|
|
Packit |
67b98c |
GHashTable *headers,
|
|
Packit |
67b98c |
GCancellable *cancellable,
|
|
Packit |
67b98c |
GAsyncReadyCallback callback,
|
|
Packit |
67b98c |
gpointer user_data);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_request_with_headers_async (GrlNetWc *self,
|
|
Packit |
67b98c |
const char *uri,
|
|
Packit |
67b98c |
GCancellable *cancellable,
|
|
Packit |
67b98c |
GAsyncReadyCallback callback,
|
|
Packit |
67b98c |
gpointer user_data,
|
|
Packit |
67b98c |
...) G_GNUC_NULL_TERMINATED;
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
gboolean grl_net_wc_request_finish (GrlNetWc *self,
|
|
Packit |
67b98c |
GAsyncResult *result,
|
|
Packit |
67b98c |
gchar **content,
|
|
Packit |
67b98c |
gsize *length,
|
|
Packit |
67b98c |
GError **error);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_set_log_level (GrlNetWc *self,
|
|
Packit |
67b98c |
guint log_level);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_set_throttling (GrlNetWc *self,
|
|
Packit |
67b98c |
guint throttling);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_set_cache (GrlNetWc *self,
|
|
Packit |
67b98c |
gboolean use_cache);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_set_cache_size (GrlNetWc *self,
|
|
Packit |
67b98c |
guint cache_size);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
void grl_net_wc_flush_delayed_requests (GrlNetWc *self);
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
G_END_DECLS
|
|
Packit |
67b98c |
|
|
Packit |
67b98c |
#endif /* _GRL_NET_WC_H_ */
|