network*: cosmetix
[k8lowj.git] / src / network-internal.h
blob17d211e8dc5534e0ffc3a2373a59ed2297856e5f
1 /* logjam - a GTK client for LiveJournal.
2 * Copyright (C) 2000-2003 Evan Martin <evan@livejournal.com>
3 */
4 #ifndef __LOGJAM_NETWORK_INTERNAL_H__
5 #define __LOGJAM_NETWORK_INTERNAL_H__
7 #include "network.h"
10 /* network-internal -- interface to http, used by network.
11 * provides a blocking and nonblocking interface.
12 * implemented by
13 * network-curl -- curl (unix, fork);
14 * network-win32 -- windows api (windows, threads).
17 #define READ_BLOCK_SIZE (2048)
20 typedef enum {
21 NET_STATUS_NULL,
22 NET_STATUS_BEGIN,
23 NET_STATUS_SUCCESS,
24 NET_STATUS_ERROR,
25 NET_STATUS_PROGRESS,
26 NET_STATUS_DONE
27 } NetStatusType;
30 typedef struct {
31 guint32 current;
32 guint32 total;
33 } NetStatusProgress;
36 typedef void (*NetStatusCallback) (NetStatusType status, gpointer statusdata, gpointer data);
38 extern GString *net_post_blocking (const char *url, GSList *headers, GString *post, NetStatusCallback cb, gpointer data, GError **err);
40 typedef void *NetMainloopHandle;
42 extern GString *net_post_mainloop (const char *url, GSList *headers, GString *post, NetStatusCallback cb, gpointer data, GError **err);
43 extern void net_mainloop_cancel (NetMainloopHandle handle);
45 extern gboolean net_verb_run_internal (LJVerb *verb, NetStatusCallback cb, gpointer data, GError **err);
48 #endif