Change the SoupURI properties to SoupAddress properties.
[platform/upstream/libsoup.git] / libsoup / soup-address.h
1 /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 /*
3  * Copyright (C) 2000-2003, Ximian, Inc.
4  */
5
6 #ifndef SOUP_ADDRESS_H
7 #define SOUP_ADDRESS_H
8
9 #include <sys/types.h>
10
11 #include <gio/gio.h>
12
13 #include <libsoup/soup-portability.h>
14 #include <libsoup/soup-types.h>
15
16 G_BEGIN_DECLS
17
18 #define SOUP_TYPE_ADDRESS            (soup_address_get_type ())
19 #define SOUP_ADDRESS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_ADDRESS, SoupAddress))
20 #define SOUP_ADDRESS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_ADDRESS, SoupAddressClass))
21 #define SOUP_IS_ADDRESS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_ADDRESS))
22 #define SOUP_IS_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_ADDRESS))
23 #define SOUP_ADDRESS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_ADDRESS, SoupAddressClass))
24
25 struct _SoupAddress {
26         GObject parent;
27
28 };
29
30 typedef struct {
31         GObjectClass parent_class;
32
33         /* Padding for future expansion */
34         void (*_libsoup_reserved1) (void);
35         void (*_libsoup_reserved2) (void);
36         void (*_libsoup_reserved3) (void);
37         void (*_libsoup_reserved4) (void);
38 } SoupAddressClass;
39
40 #define SOUP_ADDRESS_NAME     "name"
41 #define SOUP_ADDRESS_FAMILY   "family"
42 #define SOUP_ADDRESS_PORT     "port"
43 #define SOUP_ADDRESS_PHYSICAL "physical"
44 #define SOUP_ADDRESS_SOCKADDR "sockaddr"
45
46 /* gtk-doc gets confused if there's an #ifdef inside the typedef */
47 #ifndef AF_INET6
48 #define AF_INET6 -1
49 #endif
50
51 typedef enum {
52         SOUP_ADDRESS_FAMILY_INVALID = -1,
53
54         SOUP_ADDRESS_FAMILY_IPV4 = AF_INET,
55         SOUP_ADDRESS_FAMILY_IPV6 = AF_INET6
56 } SoupAddressFamily;
57
58 #if AF_INET6 == -1
59 #undef AF_INET6
60 #endif
61
62 #define SOUP_ADDRESS_ANY_PORT 0
63
64 typedef void   (*SoupAddressCallback)            (SoupAddress         *addr,
65                                                   guint                status,
66                                                   gpointer             data);
67
68 GType soup_address_get_type (void);
69
70 SoupAddress     *soup_address_new                (const char          *name,
71                                                   guint                port);
72 SoupAddress     *soup_address_new_from_sockaddr  (struct sockaddr     *sa,
73                                                   int                  len);
74 SoupAddress     *soup_address_new_any            (SoupAddressFamily    family,
75                                                   guint                port);
76
77 void             soup_address_resolve_async      (SoupAddress         *addr,
78                                                   GMainContext        *async_context,
79                                                   GCancellable        *cancellable,
80                                                   SoupAddressCallback  callback,
81                                                   gpointer             user_data);
82 guint            soup_address_resolve_sync       (SoupAddress         *addr,
83                                                   GCancellable        *cancellable);
84
85 const char      *soup_address_get_name           (SoupAddress         *addr);
86 const char      *soup_address_get_physical       (SoupAddress         *addr);
87 guint            soup_address_get_port           (SoupAddress         *addr);
88 struct sockaddr *soup_address_get_sockaddr       (SoupAddress         *addr,
89                                                   int                 *len);
90 gboolean         soup_address_is_resolved        (SoupAddress         *addr);
91
92 guint            soup_address_hash_by_name       (gconstpointer        addr);
93 gboolean         soup_address_equal_by_name      (gconstpointer        addr1,
94                                                   gconstpointer        addr2);
95 guint            soup_address_hash_by_ip         (gconstpointer        addr);
96 gboolean         soup_address_equal_by_ip        (gconstpointer        addr1,
97                                                   gconstpointer        addr2);
98
99
100 G_END_DECLS
101
102 #endif /* SOUP_ADDRESS_H */