| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | /* GIO - GLib Input, Output and Streaming Library
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright © 2008 Christian Kellner, Samuel Cormier-Iijima | 
					
						
							|  |  |  |  * Copyright © 2009 Codethink Limited | 
					
						
							|  |  |  |  * Copyright © 2009 Red Hat, Inc | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2017-05-27 18:21:30 +02:00
										 |  |  |  * This library is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU Lesser General Public | 
					
						
							|  |  |  |  * License as published by the Free Software Foundation; either | 
					
						
							|  |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * This library is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
					
						
							|  |  |  |  * Lesser General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU Lesser General | 
					
						
							| 
									
										
										
										
											2014-01-23 12:58:29 +01:00
										 |  |  |  * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
 | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Authors: Christian Kellner <gicmo@gnome.org> | 
					
						
							|  |  |  |  *          Samuel Cormier-Iijima <sciyoshi@gmail.com> | 
					
						
							|  |  |  |  *          Ryan Lortie <desrt@desrt.ca> | 
					
						
							|  |  |  |  *          Alexander Larsson <alexl@redhat.com> | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-27 23:43:14 -05:00
										 |  |  | #ifndef __G_SOCKET_LISTENER_H__
 | 
					
						
							|  |  |  | #define __G_SOCKET_LISTENER_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
 | 
					
						
							|  |  |  | #error "Only <gio/gio.h> can be included directly."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <gio/giotypes.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | G_BEGIN_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #define G_TYPE_SOCKET_LISTENER                              (g_socket_listener_get_type ())
 | 
					
						
							|  |  |  | #define G_SOCKET_LISTENER(inst)                             (G_TYPE_CHECK_INSTANCE_CAST ((inst),                     \
 | 
					
						
							|  |  |  |                                                              G_TYPE_SOCKET_LISTENER, GSocketListener)) | 
					
						
							|  |  |  | #define G_SOCKET_LISTENER_CLASS(class)                      (G_TYPE_CHECK_CLASS_CAST ((class),                       \
 | 
					
						
							|  |  |  |                                                              G_TYPE_SOCKET_LISTENER, GSocketListenerClass)) | 
					
						
							|  |  |  | #define G_IS_SOCKET_LISTENER(inst)                          (G_TYPE_CHECK_INSTANCE_TYPE ((inst),                     \
 | 
					
						
							|  |  |  |                                                              G_TYPE_SOCKET_LISTENER)) | 
					
						
							|  |  |  | #define G_IS_SOCKET_LISTENER_CLASS(class)                   (G_TYPE_CHECK_CLASS_TYPE ((class),                       \
 | 
					
						
							|  |  |  |                                                              G_TYPE_SOCKET_LISTENER)) | 
					
						
							|  |  |  | #define G_SOCKET_LISTENER_GET_CLASS(inst)                   (G_TYPE_INSTANCE_GET_CLASS ((inst),                      \
 | 
					
						
							|  |  |  |                                                              G_TYPE_SOCKET_LISTENER, GSocketListenerClass)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | typedef struct _GSocketListenerPrivate                      GSocketListenerPrivate; | 
					
						
							|  |  |  | typedef struct _GSocketListenerClass                        GSocketListenerClass; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**
 | 
					
						
							|  |  |  |  * GSocketListenerClass: | 
					
						
							|  |  |  |  * @changed: virtual method called when the set of socket listened to changes | 
					
						
							| 
									
										
										
										
											2015-02-05 16:20:43 +01:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Class structure for #GSocketListener. | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  |  **/ | 
					
						
							|  |  |  | struct _GSocketListenerClass | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GObjectClass parent_class; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   void (* changed) (GSocketListener *listener); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-09 15:54:43 +02:00
										 |  |  |   void (* event) (GSocketListener      *listener, | 
					
						
							| 
									
										
										
										
											2017-12-23 18:50:50 -08:00
										 |  |  |                   GSocketListenerEvent  event, | 
					
						
							| 
									
										
										
										
											2014-10-09 15:54:43 +02:00
										 |  |  |                   GSocket              *socket); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  |   /* Padding for future expansion */ | 
					
						
							|  |  |  |   void (*_g_reserved2) (void); | 
					
						
							|  |  |  |   void (*_g_reserved3) (void); | 
					
						
							|  |  |  |   void (*_g_reserved4) (void); | 
					
						
							|  |  |  |   void (*_g_reserved5) (void); | 
					
						
							|  |  |  |   void (*_g_reserved6) (void); | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | struct _GSocketListener | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   GObject parent_instance; | 
					
						
							|  |  |  |   GSocketListenerPrivate *priv; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GType                   g_socket_listener_get_type                      (void) G_GNUC_CONST; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GSocketListener *       g_socket_listener_new                           (void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | void                    g_socket_listener_set_backlog                   (GSocketListener     *listener, | 
					
						
							|  |  |  | 									 int                  listen_backlog); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | gboolean                g_socket_listener_add_socket                    (GSocketListener     *listener, | 
					
						
							|  |  |  |                                                                          GSocket             *socket, | 
					
						
							|  |  |  | 									 GObject             *source_object, | 
					
						
							|  |  |  | 									 GError             **error); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-06-12 15:57:51 +02:00
										 |  |  | gboolean                g_socket_listener_add_address                   (GSocketListener     *listener, | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  |                                                                          GSocketAddress      *address, | 
					
						
							|  |  |  | 									 GSocketType          type, | 
					
						
							| 
									
										
										
										
											2009-05-20 12:01:29 +02:00
										 |  |  | 									 GSocketProtocol      protocol, | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | 									 GObject             *source_object, | 
					
						
							| 
									
										
										
										
											2009-06-15 14:23:57 +02:00
										 |  |  |                                                                          GSocketAddress     **effective_address, | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | 									 GError             **error); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-06-12 15:57:51 +02:00
										 |  |  | gboolean                g_socket_listener_add_inet_port                 (GSocketListener     *listener, | 
					
						
							|  |  |  |                                                                          guint16              port, | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | 									 GObject             *source_object, | 
					
						
							|  |  |  | 									 GError             **error); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-06-15 14:07:13 -04:00
										 |  |  | guint16                 g_socket_listener_add_any_inet_port             (GSocketListener     *listener, | 
					
						
							|  |  |  | 									 GObject             *source_object, | 
					
						
							|  |  |  | 									 GError             **error); | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GSocket *               g_socket_listener_accept_socket                 (GSocketListener      *listener, | 
					
						
							|  |  |  | 									 GObject             **source_object, | 
					
						
							|  |  |  |                                                                          GCancellable         *cancellable, | 
					
						
							|  |  |  |                                                                          GError              **error); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | void                    g_socket_listener_accept_socket_async           (GSocketListener      *listener, | 
					
						
							|  |  |  |                                                                          GCancellable         *cancellable, | 
					
						
							|  |  |  |                                                                          GAsyncReadyCallback   callback, | 
					
						
							|  |  |  |                                                                          gpointer              user_data); | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GSocket *               g_socket_listener_accept_socket_finish          (GSocketListener      *listener, | 
					
						
							|  |  |  |                                                                          GAsyncResult         *result, | 
					
						
							|  |  |  | 									 GObject             **source_object, | 
					
						
							|  |  |  |                                                                          GError              **error); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GSocketConnection *     g_socket_listener_accept                        (GSocketListener      *listener, | 
					
						
							|  |  |  | 									 GObject             **source_object, | 
					
						
							|  |  |  |                                                                          GCancellable         *cancellable, | 
					
						
							|  |  |  |                                                                          GError              **error); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | void                    g_socket_listener_accept_async                  (GSocketListener      *listener, | 
					
						
							|  |  |  |                                                                          GCancellable         *cancellable, | 
					
						
							|  |  |  |                                                                          GAsyncReadyCallback   callback, | 
					
						
							|  |  |  |                                                                          gpointer              user_data); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | GSocketConnection *     g_socket_listener_accept_finish                 (GSocketListener      *listener, | 
					
						
							|  |  |  |                                                                          GAsyncResult         *result, | 
					
						
							|  |  |  | 									 GObject             **source_object, | 
					
						
							|  |  |  |                                                                          GError              **error); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-06 14:04:59 -05:00
										 |  |  | GLIB_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2009-05-15 21:26:24 +02:00
										 |  |  | void                    g_socket_listener_close                         (GSocketListener      *listener); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | G_END_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __G_SOCKET_LISTENER_H__ */
 |