|
| NetworkMonitor (NetworkMonitor&& src) noexcept |
|
NetworkMonitor& | operator= (NetworkMonitor&& src) noexcept |
|
| ~NetworkMonitor () noexcept override |
|
GNetworkMonitor* | gobj () |
| Provides access to the underlying C GObject. More...
|
|
const GNetworkMonitor* | gobj () const |
| Provides access to the underlying C GObject. More...
|
|
bool | get_network_available () const |
| Checks if the network is available. More...
|
|
bool | get_network_metered () const |
| Checks if the network is metered. More...
|
|
NetworkConnectivity | get_connectivity () const |
| Gets a more detailed networking state than g_network_monitor_get_network_available(). More...
|
|
bool | can_reach (const Glib::RefPtr< SocketConnectable >& connectable, const Glib::RefPtr< Cancellable >& cancellable) |
| Attempts to determine whether or not the host pointed to by connectable can be reached, without actually trying to connect to it. More...
|
|
bool | can_reach (const Glib::RefPtr< SocketConnectable >& connectable) |
| A can_reach() convenience overload. More...
|
|
void | can_reach_async (const Glib::RefPtr< SocketConnectable >& connectable, const SlotAsyncReady& slot, const Glib::RefPtr< Cancellable >& cancellable) |
|
bool | can_reach_finish (const Glib::RefPtr< AsyncResult >& result) |
| Finishes an async network connectivity test. More...
|
|
Glib::SignalProxy< void, bool > | signal_network_changed () |
|
Glib::PropertyProxy_ReadOnly< bool > | property_network_available () const |
| Whether the network is considered available. More...
|
|
Glib::PropertyProxy_ReadOnly< NetworkConnectivity > | property_connectivity () const |
| More detailed information about the host's network connectivity. More...
|
|
Glib::PropertyProxy_ReadOnly< bool > | property_network_metered () const |
| Whether the network is considered metered. More...
|
|
| Interface () |
| A Default constructor. More...
|
|
| Interface (Interface&& src) noexcept |
|
Interface& | operator= (Interface&& src) noexcept |
|
| Interface (const Glib::Interface_Class& interface_class) |
| Called by constructors of derived classes. More...
|
|
| Interface (GObject* castitem) |
| Called by constructors of derived classes. More...
|
|
| ~Interface () noexcept override |
|
| Interface (const Interface&)=delete |
|
Interface& | operator= (const Interface&)=delete |
|
GObject* | gobj () |
|
const GObject* | gobj () const |
|
| ObjectBase (const ObjectBase&)=delete |
|
ObjectBase& | operator= (const ObjectBase&)=delete |
|
void | set_property_value (const Glib::ustring& property_name, const Glib::ValueBase& value) |
| You probably want to use a specific property_*() accessor method instead. More...
|
|
void | get_property_value (const Glib::ustring& property_name, Glib::ValueBase& value) const |
| You probably want to use a specific property_*() accessor method instead. More...
|
|
template<class PropertyType > |
void | set_property (const Glib::ustring& property_name, const PropertyType& value) |
| You probably want to use a specific property_*() accessor method instead. More...
|
|
template<class PropertyType > |
void | get_property (const Glib::ustring& property_name, PropertyType& value) const |
| You probably want to use a specific property_*() accessor method instead. More...
|
|
void | connect_property_changed (const Glib::ustring& property_name, const sigc::slot< void >& slot) |
| You can use the signal_changed() signal of the property proxy instead. More...
|
|
void | connect_property_changed (const Glib::ustring& property_name, sigc::slot< void >&& slot) |
| You can use the signal_changed() signal of the property proxy instead. More...
|
|
sigc::connection | connect_property_changed_with_return (const Glib::ustring& property_name, const sigc::slot< void >& slot) |
| You can use the signal_changed() signal of the property proxy instead. More...
|
|
sigc::connection | connect_property_changed_with_return (const Glib::ustring& property_name, sigc::slot< void >&& slot) |
| You can use the signal_changed() signal of the property proxy instead. More...
|
|
void | freeze_notify () |
| Increases the freeze count on object. More...
|
|
void | thaw_notify () |
| Reverts the effect of a previous call to freeze_notify(). More...
|
|
virtual void | reference () const |
| Increment the reference count for this object. More...
|
|
virtual void | unreference () const |
| Decrement the reference count for this object. More...
|
|
GObject* | gobj () |
| Provides access to the underlying C GObject. More...
|
|
const GObject* | gobj () const |
| Provides access to the underlying C GObject. More...
|
|
GObject* | gobj_copy () const |
| Give a ref-ed copy to someone. Use for direct struct access. More...
|
|
| trackable () noexcept |
|
| trackable (const trackable &src) noexcept |
|
| trackable (trackable &&src) |
|
| ~trackable () |
|
void | add_destroy_notify_callback (void *data, func_destroy_notify func) const |
|
void | notify_callbacks () |
|
trackable & | operator= (const trackable &src) |
|
trackable & | operator= (trackable &&src) |
|
void | remove_destroy_notify_callback (void *data) const |
|
Network status monitor.
Gio::NetworkMonitor provides an easy-to-use cross-platform API for monitoring network connectivity. On Linux, the available implementations are based on the kernel's netlink interface and on NetworkManager.
There is also an implementation for use inside Flatpak sandboxes.
- Since glibmm 2.44:
Attempts to determine whether or not the host pointed to by connectable can be reached, without actually trying to connect to it.
This may return true
even when NetworkMonitor::property_network_available() is false
, if, for example, monitor can determine that connectable refers to a host on a local network.
If monitor believes that an attempt to connect to connectable will succeed, it will return true
. Otherwise, it will return false
and set error to an appropriate error (such as IO_ERROR_HOST_UNREACHABLE).
Note that although this does not attempt to connect to connectable, it may still block for a brief period of time (eg, trying to do multicast DNS on the local network), so if you do not want to block, you should use g_network_monitor_can_reach_async().
- Since glibmm 2.44:
- Parameters
-
- Returns
true
if connectable is reachable, false
if not.
- Exceptions
-
Gets a more detailed networking state than g_network_monitor_get_network_available().
If NetworkMonitor::property_network_available() is false
, then the connectivity state will be NETWORK_CONNECTIVITY_LOCAL.
If NetworkMonitor::property_network_available() is true
, then the connectivity state will be NETWORK_CONNECTIVITY_FULL (if there is full Internet connectivity), NETWORK_CONNECTIVITY_LIMITED (if the host has a default route, but appears to be unable to actually reach the full Internet), or NETWORK_CONNECTIVITY_PORTAL (if the host is trapped behind a "captive portal" that requires some sort of login or acknowledgement before allowing full Internet access).
Note that in the case of NETWORK_CONNECTIVITY_LIMITED and NETWORK_CONNECTIVITY_PORTAL, it is possible that some sites are reachable but others are not. In this case, applications can attempt to connect to remote servers, but should gracefully fall back to their "offline" behavior if the connection attempt fails.
- Since glibmm 2.44:
- Returns
- The network connectivity state.
Whether the network is considered available.
That is, whether the system has a default route for at least one of IPv4 or IPv6.
Real-world networks are of course much more complicated than this; the machine may be connected to a wifi hotspot that requires payment before allowing traffic through, or may be connected to a functioning router that has lost its own upstream connectivity. Some hosts might only be accessible when a VPN is active. Other hosts might only be accessible when the VPN is not active. Thus, it is best to use g_network_monitor_can_reach() or g_network_monitor_can_reach_async() to test for reachability on a host-by-host basis. (On the other hand, when the property is false
, the application can reasonably expect that no remote hosts at all are reachable, and should indicate this to the user in its UI.)
See also NetworkMonitor::signal_network_changed().
- Since glibmm 2.44:
Default value: false
- Returns
- A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.
Whether the network is considered metered.
That is, whether the system has traffic flowing through the default connection that is subject to limitations set by service providers. For example, traffic might be billed by the amount of data transmitted, or there might be a quota on the amount of traffic per month. This is typical with tethered connections (3G and 4G) and in such situations, bandwidth intensive applications may wish to avoid network activity where possible if it will cost the user money or use up their limited quota.
If more information is required about specific devices then the system network management API should be used instead (for example, NetworkManager or ConnMan).
If this information is not available then no networks will be marked as metered.
See also NetworkMonitor::property_network_available().
- Since glibmm 2.46:
Default value: false
- Returns
- A PropertyProxy_ReadOnly that allows you to get the value of the property, or receive notification when the value of the property changes.