| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> | |
| <html> | |
| <head> | |
| <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> | |
| <title>Extending GIO: GIO Reference Manual</title> | |
| <meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> | |
| <link rel="home" href="index.html" title="GIO Reference Manual"> | |
| <link rel="up" href="pt01.html" title="Part I. GIO Overview"> | |
| <link rel="prev" href="running-gio-apps.html" title="Running GIO applications"> | |
| <link rel="next" href="pt02.html" title="Part II. API Reference"> | |
| <meta name="generator" content="GTK-Doc V1.25.1 (XML mode)"> | |
| <link rel="stylesheet" href="style.css" type="text/css"> | |
| </head> | |
| <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> | |
| <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle"> | |
| <td width="100%" align="left" class="shortcuts"></td> | |
| <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td> | |
| <td><a accesskey="u" href="pt01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td> | |
| <td><a accesskey="p" href="running-gio-apps.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td> | |
| <td><a accesskey="n" href="pt02.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td> | |
| </tr></table> | |
| <div class="chapter"> | |
| <div class="titlepage"><div><div><h2 class="title"> | |
| <a name="extending-gio"></a>Extending GIO</h2></div></div></div> | |
| <p> | |
| A lot of the functionality that is accessible through GIO | |
| is implemented in loadable modules, and modules provide a convenient | |
| way to extend GIO. In addition to the <a class="link" href="GIOModule.html" title="GIOModule"><span class="type">GIOModule</span></a> API which supports | |
| writing such modules, GIO has a mechanism to define extension points, | |
| and register implementations thereof, see <a class="link" href="gio-Extension-Points.html#GIOExtensionPoint" title="GIOExtensionPoint"><span class="type">GIOExtensionPoint</span></a>. | |
| </p> | |
| <p> | |
| The following extension points are currently defined by GIO: | |
| </p> | |
| <p><b>G_VFS_EXTENSION_POINT_NAME. </b> | |
| Allows to override the functionality of the <a class="link" href="GVfs.html" title="GVfs"><span class="type">GVfs</span></a> class. | |
| Implementations of this extension point must be derived from <a class="link" href="GVfs.html" title="GVfs"><span class="type">GVfs</span></a>. | |
| GIO uses the implementation with the highest priority that is active, | |
| see <a class="link" href="GVfs.html#g-vfs-is-active" title="g_vfs_is_active ()"><code class="function">g_vfs_is_active()</code></a>. | |
| GIO implements this extension point for local files, gvfs contains | |
| an implementation that supports all the backends in gvfs. | |
| </p> | |
| <p><b>G_VOLUME_MONITOR_EXTENSION_POINT_NAME. </b> | |
| Allows to add more volume monitors. | |
| Implementations of this extension point must be derived from | |
| <a class="link" href="GVolumeMonitor.html" title="GVolumeMonitor"><span class="type">GVolumeMonitor</span></a>. GIO uses all registered extensions. | |
| gvfs contains an implementation that works together with the <a class="link" href="GVfs.html" title="GVfs"><span class="type">GVfs</span></a> | |
| implementation in gvfs. | |
| </p> | |
| <p><b>G_NATIVE_VOLUME_MONITOR_EXTENSION_POINT_NAME. </b> | |
| Allows to override the 'native' volume monitor. | |
| Implementations of this extension point must be derived from | |
| <span class="type">GNativeVolumeMonitor</span>. GIO uses the implementation with | |
| the highest priority that is supported, as determined by the | |
| <code class="function">is_supported()</code> vfunc in <span class="type">GVolumeMonitorClass</span>. | |
| GIO implements this extension point for local mounts, | |
| gvfs contains a udisks2-based implementation. | |
| </p> | |
| <p><b>G_LOCAL_FILE_MONITOR_EXTENSION_POINT_NAME. </b> | |
| Allows to override the file monitor implementation for | |
| local files. Implementations of this extension point must | |
| be derived from <span class="type">GLocalFileMonitor</span>. GIO uses the implementation | |
| with the highest priority that is supported, as determined by the | |
| <code class="function">is_supported()</code> vfunc in <span class="type">GLocalFileMonitorClass</span>. | |
| GIO uses this extension point internally, to switch between | |
| its fam-based and inotify-based file monitoring implementations. | |
| </p> | |
| <p><b>G_LOCAL_DIRECTORY_MONITOR_EXTENSION_POINT_NAME. </b> | |
| Allows to override the directory monitor implementation for | |
| local files. Implementations of this extension point must be | |
| derived from <span class="type">GLocalDirectoryMonitor</span>. GIO uses the implementation | |
| with the highest priority that is supported, as determined by the | |
| <code class="function">is_supported()</code> vfunc in <span class="type">GLocalDirectoryMonitorClass</span>. | |
| GIO uses this extension point internally, to switch between | |
| its fam-based and inotify-based directory monitoring implementations. | |
| </p> | |
| <p><b>G_DESKTOP_APP_INFO_LOOKUP_EXTENSION_POINT_NAME. </b> | |
| Unix-only. Allows to provide a way to associate default handlers | |
| with URI schemes. Implementations of this extension point must | |
| implement the <a class="link" href="gio-Desktop-file-based-GAppInfo.html#GDesktopAppInfoLookup"><span class="type">GDesktopAppInfoLookup</span></a> interface. GIO uses the | |
| implementation with the highest priority. | |
| This extension point has been discontinued in GLib 2.28. It is | |
| still available to keep API and ABI stability, but GIO is no | |
| longer using it for default handlers. Instead, the mime handler | |
| mechanism is used, together with x-scheme-handler pseudo-mimetypes. | |
| </p> | |
| <p><b>G_SETTINGS_BACKEND_EXTENSION_POINT_NAME. </b> | |
| Allows to provide an alternative storage for <a class="link" href="GSettings.html" title="GSettings"><span class="type">GSettings</span></a>. | |
| Implementations of this extension point must derive from the | |
| <a class="link" href="GSettingsBackend.html" title="GSettingsBackend"><span class="type">GSettingsBackend</span></a> type. GIO contains a keyfile-based | |
| implementation of this extension point, another one is provided | |
| by dconf. | |
| </p> | |
| <p><b>G_PROXY_EXTENSION_POINT_NAME. </b> | |
| Allows to provide implementations for network proxying. | |
| Implementations of this extension point must provide the | |
| <a class="link" href="GProxy.html" title="GProxy"><span class="type">GProxy</span></a> interface, and must be named after the network | |
| protocol they are proxying. | |
| glib-networking contains an implementation of this extension | |
| point based on libproxy. | |
| </p> | |
| <p><b>G_TLS_BACKEND_EXTENSION_POINT_NAME. </b> | |
| Allows to provide implementations for TLS support. | |
| Implementations of this extension point must implement | |
| the <a class="link" href="GTlsBackend.html" title="GTlsBackend"><span class="type">GTlsBackend</span></a> interface. | |
| glib-networking contains an implementation of this extension | |
| point. | |
| </p> | |
| <p><b>G_NETWORK_MONITOR_EXTENSION_POINT_NAME. </b> | |
| Allows to provide implementations for network connectivity | |
| monitoring. | |
| Implementations of this extension point must implement | |
| the <a class="link" href="GNetworkMonitor.html#GNetworkMonitorInterface" title="struct GNetworkMonitorInterface"><span class="type">GNetworkMonitorInterface</span></a> interface. | |
| GIO contains an implementation of this extension point | |
| that is using the netlink interface of the Linux kernel. | |
| </p> | |
| </div> | |
| <div class="footer"> | |
| <hr>Generated by GTK-Doc V1.25.1</div> | |
| </body> | |
| </html> |