/* * Copyright (c) 2002, 2003, 2004 Jean-Yves Lefort * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. Neither the name of Jean-Yves Lefort nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ #ifndef _ST_TRANSFER_API_H #define _ST_TRANSFER_API_H #include <glib.h> G_BEGIN_DECLS typedef struct _STTransferSession STTransferSession; typedef enum { ST_TRANSFER_PASS_NEWLINE = 1 << 0, ST_TRANSFER_UTF8 = 1 << 1, ST_TRANSFER_PARSE_HTTP_CHARSET = 1 << 2, ST_TRANSFER_PARSE_HTML_CHARSET = 1 << 3 } STTransferFlags; /** * STTransferLineCallback: * @line: a line. If #ST_TRANSFER_PASS_NEWLINE was used, the line * terminator is included. If #ST_TRANSFER_UTF8 was used, the line is * valid UTF-8. * @data: data pointer passed to st_transfer_session_get_by_line(). * * Specifies the type of function to pass to * st_transfer_session_get_by_line(). * * The function will be called whenever a line has been transferred. **/ typedef void (*STTransferLineCallback) (const char *line, gpointer data); STTransferSession *st_transfer_session_new (void); void st_transfer_session_free (STTransferSession *session); gboolean st_transfer_session_get (STTransferSession *session, const char *url, STTransferFlags flags, char **headers, char **body, GError **err); gboolean st_transfer_session_get_binary (STTransferSession *session, const char *url, STTransferFlags flags, char **headers, guint8 **body, unsigned int *body_len, GError **err); gboolean st_transfer_session_get_by_line (STTransferSession *session, const char *url, STTransferFlags flags, STTransferLineCallback header_cb, gpointer header_data, STTransferLineCallback body_cb, gpointer body_data, GError **err); char *st_transfer_escape (const char *url); #ifndef ST_DISABLE_DEPRECATED char *st_transfer_get_full (const char *url, GError **err); gboolean st_transfer_get_lines (const char *url, STTransferLineCallback cb, gpointer data, GError **err); char *st_transfer_get_full_with_session (STTransferSession *session, const char *url, GError **err); gboolean st_transfer_get_lines_with_session (STTransferSession *session, const char *url, STTransferLineCallback cb, gpointer data, GError **err); #endif /* ! ST_DISABLE_DEPRECATED */ G_END_DECLS #endif /* _ST_TRANSFER_API_H */