Change LGPL-2.1+ to LGPL-2.1-or-later
[platform/upstream/glib.git] / gio / gsocketaddressenumerator.h
1 /* GIO - GLib Input, Output and Streaming Library
2  *
3  * Copyright (C) 2008 Red Hat, Inc.
4  *
5  * SPDX-License-Identifier: LGPL-2.1-or-later
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General
18  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
19  */
20
21 #ifndef __G_SOCKET_ADDRESS_ENUMERATOR_H__
22 #define __G_SOCKET_ADDRESS_ENUMERATOR_H__
23
24 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
25 #error "Only <gio/gio.h> can be included directly."
26 #endif
27
28 #include <gio/giotypes.h>
29
30 G_BEGIN_DECLS
31
32 #define G_TYPE_SOCKET_ADDRESS_ENUMERATOR         (g_socket_address_enumerator_get_type ())
33 #define G_SOCKET_ADDRESS_ENUMERATOR(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumerator))
34 #define G_SOCKET_ADDRESS_ENUMERATOR_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumeratorClass))
35 #define G_IS_SOCKET_ADDRESS_ENUMERATOR(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR))
36 #define G_IS_SOCKET_ADDRESS_ENUMERATOR_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_SOCKET_ADDRESS_ENUMERATOR))
37 #define G_SOCKET_ADDRESS_ENUMERATOR_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_SOCKET_ADDRESS_ENUMERATOR, GSocketAddressEnumeratorClass))
38
39 /**
40  * GSocketAddressEnumerator:
41  *
42  * Enumerator type for objects that contain or generate
43  * #GSocketAddress instances.
44  */
45 typedef struct _GSocketAddressEnumeratorClass GSocketAddressEnumeratorClass;
46
47 struct _GSocketAddressEnumerator
48 {
49   /*< private >*/
50   GObject parent_instance;
51 };
52
53 /**
54  * GSocketAddressEnumeratorClass:
55  * @next: Virtual method for g_socket_address_enumerator_next().
56  * @next_async: Virtual method for g_socket_address_enumerator_next_async().
57  * @next_finish: Virtual method for g_socket_address_enumerator_next_finish().
58  *
59  * Class structure for #GSocketAddressEnumerator.
60  */
61 struct _GSocketAddressEnumeratorClass
62 {
63   /*< private >*/
64   GObjectClass parent_class;
65
66   /*< public >*/
67   /* Virtual Table */
68
69   GSocketAddress * (* next)        (GSocketAddressEnumerator  *enumerator,
70                                     GCancellable              *cancellable,
71                                     GError                   **error);
72
73   void             (* next_async)  (GSocketAddressEnumerator  *enumerator,
74                                     GCancellable              *cancellable,
75                                     GAsyncReadyCallback        callback,
76                                     gpointer                   user_data);
77   GSocketAddress * (* next_finish) (GSocketAddressEnumerator  *enumerator,
78                                     GAsyncResult              *result,
79                                     GError                   **error);
80 };
81
82 GIO_AVAILABLE_IN_ALL
83 GType           g_socket_address_enumerator_get_type        (void) G_GNUC_CONST;
84
85 GIO_AVAILABLE_IN_ALL
86 GSocketAddress *g_socket_address_enumerator_next        (GSocketAddressEnumerator  *enumerator,
87                                                          GCancellable              *cancellable,
88                                                          GError                   **error);
89
90 GIO_AVAILABLE_IN_ALL
91 void            g_socket_address_enumerator_next_async  (GSocketAddressEnumerator  *enumerator,
92                                                          GCancellable              *cancellable,
93                                                          GAsyncReadyCallback        callback,
94                                                          gpointer                   user_data);
95 GIO_AVAILABLE_IN_ALL
96 GSocketAddress *g_socket_address_enumerator_next_finish (GSocketAddressEnumerator  *enumerator,
97                                                          GAsyncResult              *result,
98                                                          GError                   **error);
99
100 G_END_DECLS
101
102
103 #endif /* __G_SOCKET_ADDRESS_ENUMERATOR_H__ */