| 
									
										
										
										
											2013-02-23 17:32:31 -06:00
										 |  |  | /* GIO - GLib Input, Output and Streaming Library
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2013 Collabora Ltd. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2022-05-18 09:12:45 +01:00
										 |  |  |  * SPDX-License-Identifier: LGPL-2.1-or-later | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06: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 | 
					
						
							| 
									
										
										
										
											2017-05-27 18:21:30 +02:00
										 |  |  |  * version 2.1 of the License, or (at your option) any later version. | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06: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/>.
 | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __G_IO_PRIVATE_H__
 | 
					
						
							|  |  |  | #define __G_IO_PRIVATE_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "ginputstream.h"
 | 
					
						
							| 
									
										
										
										
											2013-02-23 17:42:49 -06:00
										 |  |  | #include "goutputstream.h"
 | 
					
						
							| 
									
										
										
										
											2013-11-18 16:15:34 -05:00
										 |  |  | #include "gsocketconnection.h"
 | 
					
						
							|  |  |  | #include "gsocketaddress.h"
 | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  | G_BEGIN_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | gboolean g_input_stream_async_read_is_via_threads (GInputStream *stream); | 
					
						
							| 
									
										
										
										
											2015-01-20 08:09:33 -05:00
										 |  |  | gboolean g_input_stream_async_close_is_via_threads (GInputStream *stream); | 
					
						
							| 
									
										
										
										
											2013-02-23 17:42:49 -06:00
										 |  |  | gboolean g_output_stream_async_write_is_via_threads (GOutputStream *stream); | 
					
						
							| 
									
										
										
										
											2018-09-13 13:10:36 +03:00
										 |  |  | gboolean g_output_stream_async_writev_is_via_threads (GOutputStream *stream); | 
					
						
							| 
									
										
										
										
											2015-01-20 08:09:33 -05:00
										 |  |  | gboolean g_output_stream_async_close_is_via_threads (GOutputStream *stream); | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-18 16:15:34 -05:00
										 |  |  | void g_socket_connection_set_cached_remote_address (GSocketConnection *connection, | 
					
						
							|  |  |  |                                                     GSocketAddress    *address); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-29 16:04:55 +03:00
										 |  |  | /* POSIX defines IOV_MAX/UIO_MAXIOV as the maximum number of iovecs that can
 | 
					
						
							|  |  |  |  * be sent in one go. We define our own version of it here as there are two | 
					
						
							|  |  |  |  * possible names, and also define a fall-back value if none of the constants | 
					
						
							|  |  |  |  * are defined */ | 
					
						
							|  |  |  | #if defined(IOV_MAX)
 | 
					
						
							|  |  |  | #define G_IOV_MAX IOV_MAX
 | 
					
						
							|  |  |  | #elif defined(UIO_MAXIOV)
 | 
					
						
							|  |  |  | #define G_IOV_MAX UIO_MAXIOV
 | 
					
						
							| 
									
										
										
										
											2022-11-02 10:01:09 +00:00
										 |  |  | #elif defined(__APPLE__)
 | 
					
						
							| 
									
										
										
										
											2019-09-07 19:42:00 +03:00
										 |  |  | /* For macOS/iOS, UIO_MAXIOV is documented in writev(2), but <sys/uio.h>
 | 
					
						
							|  |  |  |  * only declares it if defined(KERNEL) */ | 
					
						
							|  |  |  | #define G_IOV_MAX 512
 | 
					
						
							| 
									
										
										
										
											2022-11-02 10:01:09 +00:00
										 |  |  | #else
 | 
					
						
							| 
									
										
										
										
											2019-05-29 16:04:55 +03:00
										 |  |  | /* 16 is the minimum value required by POSIX */ | 
					
						
							|  |  |  | #define G_IOV_MAX 16
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* The various functions taking iovecs as parameter use a plain int
 | 
					
						
							|  |  |  |  * for the number of vectors. Limit it to G_MAXINT for this reason. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | G_STATIC_ASSERT (G_IOV_MAX <= G_MAXINT); | 
					
						
							| 
									
										
										
										
											2013-11-18 16:15:34 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-02-23 17:32:31 -06:00
										 |  |  | G_END_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #endif /* __G_IO_PRIVATE__ */
 |