| 
									
										
										
										
											2012-02-03 13:42:56 -05:00
										 |  |  | /* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*-
 | 
					
						
							|  |  |  |  * GObject introspection: Virtual Functions | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2005 Matthias Clasen | 
					
						
							|  |  |  |  * Copyright (C) 2008,2009 Red Hat, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2023-10-25 17:10:10 +01:00
										 |  |  |  * SPDX-License-Identifier: LGPL-2.1-or-later | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03: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 of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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 Public | 
					
						
							|  |  |  |  * License along with this library; if not, write to the | 
					
						
							|  |  |  |  * Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 
					
						
							|  |  |  |  * Boston, MA 02111-1307, USA. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-07 18:23:17 +00:00
										 |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #if !defined (__GIREPOSITORY_H_INSIDE__) && !defined (GI_COMPILATION)
 | 
					
						
							|  |  |  | #error "Only <girepository.h> can be included directly."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-25 17:45:42 +01:00
										 |  |  | #include <girepository/gitypes.h>
 | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | G_BEGIN_DECLS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-17 14:15:23 +00:00
										 |  |  | #define GI_TYPE_VFUNC_INFO (gi_vfunc_info_get_type ())
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-17 16:40:18 +00:00
										 |  |  | /**
 | 
					
						
							|  |  |  |  * GI_VFUNC_INFO: | 
					
						
							|  |  |  |  * @info: Info object which is subject to casting. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Casts a [type@GIRepository.VFuncInfo] or derived pointer into a | 
					
						
							|  |  |  |  * `(GIVFuncInfo*)` pointer. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Depending on the current debugging level, this function may invoke | 
					
						
							|  |  |  |  * certain runtime checks to identify invalid casts. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.80 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | #define GI_VFUNC_INFO(info) (G_TYPE_CHECK_INSTANCE_CAST ((info), GI_TYPE_VFUNC_INFO, GIVFuncInfo))
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-10 22:21:18 +02:00
										 |  |  | /**
 | 
					
						
							| 
									
										
										
										
											2023-11-08 23:36:19 +00:00
										 |  |  |  * GI_IS_VFUNC_INFO: | 
					
						
							| 
									
										
										
										
											2013-10-10 22:21:18 +02:00
										 |  |  |  * @info: an info structure | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2024-01-17 15:43:47 +00:00
										 |  |  |  * Checks if @info is a [struct@GIRepository.VFuncInfo] (or a derived type). | 
					
						
							| 
									
										
										
										
											2023-11-08 23:36:19 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * Since: 2.80 | 
					
						
							| 
									
										
										
										
											2013-10-10 22:21:18 +02:00
										 |  |  |  */ | 
					
						
							| 
									
										
										
										
											2024-01-17 15:43:47 +00:00
										 |  |  | #define GI_IS_VFUNC_INFO(info) (G_TYPE_CHECK_INSTANCE_TYPE ((info), GI_TYPE_VFUNC_INFO))
 | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  | GIVFuncInfoFlags  gi_vfunc_info_get_flags   (GIVFuncInfo *info); | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2024-01-16 01:00:07 +01:00
										 |  |  | size_t            gi_vfunc_info_get_offset  (GIVFuncInfo *info); | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  | GISignalInfo *    gi_vfunc_info_get_signal  (GIVFuncInfo *info); | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  | GIFunctionInfo *  gi_vfunc_info_get_invoker (GIVFuncInfo *info); | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2024-01-15 20:16:00 +01:00
										 |  |  | void *            gi_vfunc_info_get_address (GIVFuncInfo *info, | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  |                                              GType        implementor_gtype, | 
					
						
							|  |  |  |                                              GError     **error); | 
					
						
							| 
									
										
										
										
											2014-07-04 18:18:32 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | GI_AVAILABLE_IN_ALL | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  | gboolean          gi_vfunc_info_invoke      (GIVFuncInfo      *info, | 
					
						
							|  |  |  |                                              GType             implementor, | 
					
						
							|  |  |  |                                              const GIArgument *in_args, | 
					
						
							| 
									
										
										
										
											2024-01-16 00:35:23 +01:00
										 |  |  |                                              size_t            n_in_args, | 
					
						
							| 
									
										
										
										
											2024-01-05 13:57:35 +00:00
										 |  |  |                                              GIArgument       *out_args, | 
					
						
							| 
									
										
										
										
											2024-01-16 00:35:23 +01:00
										 |  |  |                                              size_t            n_out_args, | 
					
						
							| 
									
										
										
										
											2023-11-08 14:17:52 +00:00
										 |  |  |                                              GIArgument       *return_value, | 
					
						
							|  |  |  |                                              GError          **error); | 
					
						
							| 
									
										
										
										
											2010-06-06 19:52:12 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | G_END_DECLS |