Git init
[profile/ivi/libsoup2.4.git] / libsoup / soup-content-sniffer.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2009 Gustavo Noronha Silva.
4  */
5
6 #ifndef SOUP_CONTENT_SNIFFER_H
7 #define SOUP_CONTENT_SNIFFER_H 1
8
9 #include <libsoup/soup-types.h>
10 #include <libsoup/soup-message-body.h>
11
12 G_BEGIN_DECLS
13
14 #define SOUP_TYPE_CONTENT_SNIFFER            (soup_content_sniffer_get_type ())
15 #define SOUP_CONTENT_SNIFFER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_CONTENT_SNIFFER, SoupContentSniffer))
16 #define SOUP_CONTENT_SNIFFER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_CONTENT_SNIFFER, SoupContentSnifferClass))
17 #define SOUP_IS_CONTENT_SNIFFER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_CONTENT_SNIFFER))
18 #define SOUP_IS_CONTENT_SNIFFER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_CONTENT_SNIFFER))
19 #define SOUP_CONTENT_SNIFFER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_CONTENT_SNIFFER, SoupContentSnifferClass))
20
21 typedef struct _SoupContentSnifferPrivate SoupContentSnifferPrivate;
22
23 typedef struct {
24         GObject parent;
25
26         SoupContentSnifferPrivate *priv;
27 } SoupContentSniffer;
28
29 typedef struct {
30         GObjectClass parent_class;
31
32         char* (*sniff)              (SoupContentSniffer *sniffer,
33                                      SoupMessage *msg,
34                                      SoupBuffer *buffer,
35                                      GHashTable **params);
36         gsize (*get_buffer_size)    (SoupContentSniffer *sniffer);
37
38         /* Padding for future expansion */
39         void (*_libsoup_reserved1) (void);
40         void (*_libsoup_reserved2) (void);
41         void (*_libsoup_reserved3) (void);
42         void (*_libsoup_reserved4) (void);
43         void (*_libsoup_reserved5) (void);
44 } SoupContentSnifferClass;
45
46 GType               soup_content_sniffer_get_type (void);
47
48 SoupContentSniffer *soup_content_sniffer_new      (void);
49
50 char               *soup_content_sniffer_sniff    (SoupContentSniffer *sniffer,
51                                                    SoupMessage *msg,
52                                                    SoupBuffer *buffer,
53                                                    GHashTable **params);
54
55 G_END_DECLS
56
57 #endif /* SOUP_CONTENT_SNIFFER_H */