File indexing completed on 2025-12-17 10:13:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef __G_NETWORK_MONITOR_H__
0022 #define __G_NETWORK_MONITOR_H__
0023
0024 #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
0025 #error "Only <gio/gio.h> can be included directly."
0026 #endif
0027
0028 #include <gio/giotypes.h>
0029
0030 G_BEGIN_DECLS
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040 #define G_NETWORK_MONITOR_EXTENSION_POINT_NAME "gio-network-monitor"
0041
0042 #define G_TYPE_NETWORK_MONITOR (g_network_monitor_get_type ())
0043 #define G_NETWORK_MONITOR(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_NETWORK_MONITOR, GNetworkMonitor))
0044 #define G_IS_NETWORK_MONITOR(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_NETWORK_MONITOR))
0045 #define G_NETWORK_MONITOR_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), G_TYPE_NETWORK_MONITOR, GNetworkMonitorInterface))
0046
0047 typedef struct _GNetworkMonitorInterface GNetworkMonitorInterface;
0048
0049 struct _GNetworkMonitorInterface {
0050 GTypeInterface g_iface;
0051
0052 void (*network_changed) (GNetworkMonitor *monitor,
0053 gboolean network_available);
0054
0055 gboolean (*can_reach) (GNetworkMonitor *monitor,
0056 GSocketConnectable *connectable,
0057 GCancellable *cancellable,
0058 GError **error);
0059 void (*can_reach_async) (GNetworkMonitor *monitor,
0060 GSocketConnectable *connectable,
0061 GCancellable *cancellable,
0062 GAsyncReadyCallback callback,
0063 gpointer user_data);
0064 gboolean (*can_reach_finish) (GNetworkMonitor *monitor,
0065 GAsyncResult *result,
0066 GError **error);
0067 };
0068
0069 GIO_AVAILABLE_IN_2_32
0070 GType g_network_monitor_get_type (void) G_GNUC_CONST;
0071 GIO_AVAILABLE_IN_2_32
0072 GNetworkMonitor *g_network_monitor_get_default (void);
0073
0074 GIO_AVAILABLE_IN_2_32
0075 gboolean g_network_monitor_get_network_available (GNetworkMonitor *monitor);
0076
0077 GIO_AVAILABLE_IN_2_46
0078 gboolean g_network_monitor_get_network_metered (GNetworkMonitor *monitor);
0079
0080 GIO_AVAILABLE_IN_2_44
0081 GNetworkConnectivity g_network_monitor_get_connectivity (GNetworkMonitor *monitor);
0082
0083 GIO_AVAILABLE_IN_2_32
0084 gboolean g_network_monitor_can_reach (GNetworkMonitor *monitor,
0085 GSocketConnectable *connectable,
0086 GCancellable *cancellable,
0087 GError **error);
0088 GIO_AVAILABLE_IN_2_32
0089 void g_network_monitor_can_reach_async (GNetworkMonitor *monitor,
0090 GSocketConnectable *connectable,
0091 GCancellable *cancellable,
0092 GAsyncReadyCallback callback,
0093 gpointer user_data);
0094 GIO_AVAILABLE_IN_2_32
0095 gboolean g_network_monitor_can_reach_finish (GNetworkMonitor *monitor,
0096 GAsyncResult *result,
0097 GError **error);
0098
0099 G_END_DECLS
0100
0101 #endif