File indexing completed on 2025-10-31 09:04:17
0001 
0002 
0003 
0004 
0005 
0006 
0007 
0008 
0009 
0010 
0011 
0012 
0013 
0014 
0015 
0016 
0017 
0018 
0019 
0020 
0021 
0022 #ifndef __G_DATAGRAM_BASED_H__
0023 #define __G_DATAGRAM_BASED_H__
0024 
0025 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
0026 #error "Only <gio/gio.h> can be included directly."
0027 #endif
0028 
0029 #include <gio/giotypes.h>
0030 
0031 G_BEGIN_DECLS
0032 
0033 #define G_TYPE_DATAGRAM_BASED             (g_datagram_based_get_type ())
0034 #define G_DATAGRAM_BASED(inst)            (G_TYPE_CHECK_INSTANCE_CAST ((inst), \
0035                                            G_TYPE_DATAGRAM_BASED, GDatagramBased))
0036 #define G_IS_DATAGRAM_BASED(inst)         (G_TYPE_CHECK_INSTANCE_TYPE ((inst), \
0037                                            G_TYPE_DATAGRAM_BASED))
0038 #define G_DATAGRAM_BASED_GET_IFACE(inst)  (G_TYPE_INSTANCE_GET_INTERFACE ((inst), \
0039                                            G_TYPE_DATAGRAM_BASED, \
0040                                            GDatagramBasedInterface))
0041 #define G_TYPE_IS_DATAGRAM_BASED(type)    (g_type_is_a ((type), \
0042                                            G_TYPE_DATAGRAM_BASED))
0043 
0044 typedef struct _GDatagramBasedInterface GDatagramBasedInterface;
0045 
0046 
0047 
0048 
0049 
0050 
0051 
0052 
0053 
0054 
0055 
0056 
0057 
0058 
0059 
0060 
0061 
0062 
0063 
0064 struct _GDatagramBasedInterface
0065 {
0066   GTypeInterface g_iface;
0067 
0068   
0069   gint          (*receive_messages)     (GDatagramBased       *datagram_based,
0070                                          GInputMessage        *messages,
0071                                          guint                 num_messages,
0072                                          gint                  flags,
0073                                          gint64                timeout,
0074                                          GCancellable         *cancellable,
0075                                          GError              **error);
0076   gint          (*send_messages)        (GDatagramBased       *datagram_based,
0077                                          GOutputMessage       *messages,
0078                                          guint                 num_messages,
0079                                          gint                  flags,
0080                                          gint64                timeout,
0081                                          GCancellable         *cancellable,
0082                                          GError              **error);
0083 
0084   GSource      *(*create_source)        (GDatagramBased       *datagram_based,
0085                                          GIOCondition          condition,
0086                                          GCancellable         *cancellable);
0087   GIOCondition  (*condition_check)      (GDatagramBased       *datagram_based,
0088                                          GIOCondition          condition);
0089   gboolean      (*condition_wait)       (GDatagramBased       *datagram_based,
0090                                          GIOCondition          condition,
0091                                          gint64                timeout,
0092                                          GCancellable         *cancellable,
0093                                          GError              **error);
0094 };
0095 
0096 GIO_AVAILABLE_IN_2_48
0097 GType
0098 g_datagram_based_get_type             (void);
0099 
0100 GIO_AVAILABLE_IN_2_48
0101 gint
0102 g_datagram_based_receive_messages     (GDatagramBased       *datagram_based,
0103                                        GInputMessage        *messages,
0104                                        guint                 num_messages,
0105                                        gint                  flags,
0106                                        gint64                timeout,
0107                                        GCancellable         *cancellable,
0108                                        GError              **error);
0109 
0110 GIO_AVAILABLE_IN_2_48
0111 gint
0112 g_datagram_based_send_messages        (GDatagramBased       *datagram_based,
0113                                        GOutputMessage       *messages,
0114                                        guint                 num_messages,
0115                                        gint                  flags,
0116                                        gint64                timeout,
0117                                        GCancellable         *cancellable,
0118                                        GError              **error);
0119 
0120 GIO_AVAILABLE_IN_2_48
0121 GSource *
0122 g_datagram_based_create_source        (GDatagramBased       *datagram_based,
0123                                        GIOCondition          condition,
0124                                        GCancellable         *cancellable);
0125 GIO_AVAILABLE_IN_2_48
0126 GIOCondition
0127 g_datagram_based_condition_check      (GDatagramBased       *datagram_based,
0128                                        GIOCondition          condition);
0129 GIO_AVAILABLE_IN_2_48
0130 gboolean
0131 g_datagram_based_condition_wait       (GDatagramBased       *datagram_based,
0132                                        GIOCondition          condition,
0133                                        gint64                timeout,
0134                                        GCancellable         *cancellable,
0135                                        GError              **error);
0136 
0137 G_END_DECLS
0138 
0139 #endif