Remove build warning
[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 <libsoup/soup-types.h>
12
13 G_BEGIN_DECLS
14
15 #define SOUP_TYPE_ADDRESS            (soup_address_get_type ())
16 #define SOUP_ADDRESS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_ADDRESS, SoupAddress))
17 #define SOUP_ADDRESS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_ADDRESS, SoupAddressClass))
18 #define SOUP_IS_ADDRESS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_ADDRESS))
19 #define SOUP_IS_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_ADDRESS))
20 #define SOUP_ADDRESS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_ADDRESS, SoupAddressClass))
21
22 struct _SoupAddress {
23         GObject parent;
24
25 };
26
27 typedef struct {
28         GObjectClass parent_class;
29
30         /* Padding for future expansion */
31         void (*_libsoup_reserved1) (void);
32         void (*_libsoup_reserved2) (void);
33         void (*_libsoup_reserved3) (void);
34         void (*_libsoup_reserved4) (void);
35 } SoupAddressClass;
36
37 #define SOUP_ADDRESS_NAME     "name"
38 #define SOUP_ADDRESS_FAMILY   "family"
39 #define SOUP_ADDRESS_PORT     "port"
40 #define SOUP_ADDRESS_PROTOCOL "protocol"
41 #define SOUP_ADDRESS_PHYSICAL "physical"
42 #define SOUP_ADDRESS_SOCKADDR "sockaddr"
43
44 typedef enum {
45         SOUP_ADDRESS_FAMILY_INVALID = -1,
46
47         SOUP_ADDRESS_FAMILY_IPV4 = G_SOCKET_FAMILY_IPV4,
48         SOUP_ADDRESS_FAMILY_IPV6 = G_SOCKET_FAMILY_IPV6
49 } SoupAddressFamily;
50
51 #define SOUP_ADDRESS_ANY_PORT 0
52
53 struct sockaddr;
54
55 typedef void   (*SoupAddressCallback)            (SoupAddress         *addr,
56                                                   guint                status,
57                                                   gpointer             user_data);
58
59 GType soup_address_get_type (void);
60
61 SoupAddress     *soup_address_new                (const char          *name,
62                                                   guint                port);
63 SoupAddress     *soup_address_new_from_sockaddr  (struct sockaddr     *sa,
64                                                   int                  len);
65 SoupAddress     *soup_address_new_any            (SoupAddressFamily    family,
66                                                   guint                port);
67
68 void             soup_address_resolve_async      (SoupAddress         *addr,
69                                                   GMainContext        *async_context,
70                                                   GCancellable        *cancellable,
71                                                   SoupAddressCallback  callback,
72                                                   gpointer             user_data);
73 guint            soup_address_resolve_sync       (SoupAddress         *addr,
74                                                   GCancellable        *cancellable);
75
76 const char      *soup_address_get_name           (SoupAddress         *addr);
77 const char      *soup_address_get_physical       (SoupAddress         *addr);
78 guint            soup_address_get_port           (SoupAddress         *addr);
79 struct sockaddr *soup_address_get_sockaddr       (SoupAddress         *addr,
80                                                   int                 *len);
81 SOUP_AVAILABLE_IN_2_32
82 GSocketAddress  *soup_address_get_gsockaddr      (SoupAddress         *addr);
83 gboolean         soup_address_is_resolved        (SoupAddress         *addr);
84
85 SOUP_AVAILABLE_IN_2_26
86 guint            soup_address_hash_by_name       (gconstpointer        addr);
87 SOUP_AVAILABLE_IN_2_26
88 gboolean         soup_address_equal_by_name      (gconstpointer        addr1,
89                                                   gconstpointer        addr2);
90 SOUP_AVAILABLE_IN_2_26
91 guint            soup_address_hash_by_ip         (gconstpointer        addr);
92 SOUP_AVAILABLE_IN_2_26
93 gboolean         soup_address_equal_by_ip        (gconstpointer        addr1,
94                                                   gconstpointer        addr2);
95
96
97 G_END_DECLS
98
99 #endif /* SOUP_ADDRESS_H */