1 /*
2  * Copyright (C) 2006, 2007, 2008 OpenedHand Ltd.
3  * Copyright (C) 2010 Jens Georg <mail@jensge.org>
4  *
5  * Author: Jorn Baayen <jorn@openedhand.com>
6  *         Jens Georg <mail@jensge.org>
7  *
8  * SPDX-License-Identifier: LGPL-2.1-or-later
9  *
10  */
11 
12 #ifndef GSSDP_SOCKET_SOURCE_H
13 #define GSSDP_SOCKET_SOURCE_H
14 
15 #include <glib-object.h>
16 
17 #include <gio/gio.h>
18 
19 G_BEGIN_DECLS
20 
21 #define GSSDP_TYPE_SOCKET_SOURCE (gssdp_socket_source_get_type ())
22 
23 G_DECLARE_FINAL_TYPE (GSSDPSocketSource,
24                       gssdp_socket_source,
25                       GSSDP,
26                       SOCKET_SOURCE,
27                       GObject)
28 
29 typedef enum {
30         GSSDP_SOCKET_SOURCE_TYPE_REQUEST,
31         GSSDP_SOCKET_SOURCE_TYPE_MULTICAST,
32         GSSDP_SOCKET_SOURCE_TYPE_SEARCH
33 } GSSDPSocketSourceType;
34 
35 G_GNUC_INTERNAL GSSDPSocketSource *
36 gssdp_socket_source_new        (GSSDPSocketSourceType  type,
37                                 GInetAddress          *address,
38                                 guint                  ttl,
39                                 const char            *device_name,
40                                 guint                  index,
41                                 GError               **error);
42 
43 G_GNUC_INTERNAL GSocket*
44 gssdp_socket_source_get_socket (GSSDPSocketSource     *socket_source);
45 
46 G_GNUC_INTERNAL void
47 gssdp_socket_source_set_callback (GSSDPSocketSource   *socket_source,
48                                   GSourceFunc          callback,
49                                   gpointer             user_data);
50 
51 G_GNUC_INTERNAL void
52 gssdp_socket_source_attach       (GSSDPSocketSource   *socket_source);
53 
54 G_END_DECLS
55 
56 #endif /* GSSDP_SOCKET_SOURCE_H */
57