source: appstream-generator/build/girepo/gio/UnixMountMonitor.d @ 4841

Last change on this file since 4841 was 4841, checked in by Juanma, 2 years ago

Initial release

File size: 6.3 KB
Line 
1/*
2 * Licensed under the GNU Lesser General Public License Version 3
3 *
4 * This library is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation, either version 3 of the license, or
7 * (at your option) any later version.
8 *
9 * This software is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18// generated automatically - do not change
19
20
21module gio.UnixMountMonitor;
22
23private import gi.gio;
24public  import gi.giotypes;
25private import glib.ConstructionException;
26private import gobject.ObjectG;
27private import gobject.Signals;
28private import std.algorithm;
29
30
31/**
32 * Watches #GUnixMounts for changes.
33 */
34public class UnixMountMonitor : ObjectG
35{
36        /** the main Gtk struct */
37        protected GUnixMountMonitor* gUnixMountMonitor;
38
39        /** Get the main Gtk struct */
40        public GUnixMountMonitor* getUnixMountMonitorStruct()
41        {
42                return gUnixMountMonitor;
43        }
44
45        /** the main Gtk struct as a void* */
46        protected override void* getStruct()
47        {
48                return cast(void*)gUnixMountMonitor;
49        }
50
51        protected override void setStruct(GObject* obj)
52        {
53                gUnixMountMonitor = cast(GUnixMountMonitor*)obj;
54                super.setStruct(obj);
55        }
56
57        /**
58         * Sets our main struct and passes it to the parent class.
59         */
60        public this (GUnixMountMonitor* gUnixMountMonitor, bool ownedRef = false)
61        {
62                this.gUnixMountMonitor = gUnixMountMonitor;
63                super(cast(GObject*)gUnixMountMonitor, ownedRef);
64        }
65
66
67        /** */
68        public static GType getType()
69        {
70                return g_unix_mount_monitor_get_type();
71        }
72
73        /**
74         * Deprecated alias for g_unix_mount_monitor_get().
75         *
76         * This function was never a true constructor, which is why it was
77         * renamed.
78         *
79         * Deprecated: Use g_unix_mount_monitor_get() instead.
80         *
81         * Returns: a #GUnixMountMonitor.
82         *
83         * Throws: ConstructionException GTK+ fails to create the object.
84         */
85        public this()
86        {
87                auto p = g_unix_mount_monitor_new();
88               
89                if(p is null)
90                {
91                        throw new ConstructionException("null returned by new");
92                }
93               
94                this(cast(GUnixMountMonitor*) p, true);
95        }
96
97        /**
98         * Gets the #GUnixMountMonitor for the current thread-default main
99         * context.
100         *
101         * The mount monitor can be used to monitor for changes to the list of
102         * mounted filesystems as well as the list of mount points (ie: fstab
103         * entries).
104         *
105         * You must only call g_object_unref() on the return value from under
106         * the same main context as you called this function.
107         *
108         * Returns: the #GUnixMountMonitor.
109         *
110         * Since: 2.44
111         */
112        public static UnixMountMonitor get()
113        {
114                auto p = g_unix_mount_monitor_get();
115               
116                if(p is null)
117                {
118                        return null;
119                }
120               
121                return ObjectG.getDObject!(UnixMountMonitor)(cast(GUnixMountMonitor*) p, true);
122        }
123
124        /**
125         * This function does nothing.
126         *
127         * Before 2.44, this was a partially-effective way of controlling the
128         * rate at which events would be reported under some uncommon
129         * circumstances.  Since @mount_monitor is a singleton, it also meant
130         * that calling this function would have side effects for other users of
131         * the monitor.
132         *
133         * Deprecated: This function does nothing.  Don't call it.
134         *
135         * Params:
136         *     limitMsec = a integer with the limit in milliseconds to
137         *         poll for changes.
138         *
139         * Since: 2.18
140         */
141        public void setRateLimit(int limitMsec)
142        {
143                g_unix_mount_monitor_set_rate_limit(gUnixMountMonitor, limitMsec);
144        }
145
146        protected class OnMountpointsChangedDelegateWrapper
147        {
148                static OnMountpointsChangedDelegateWrapper[] listeners;
149                void delegate(UnixMountMonitor) dlg;
150                gulong handlerId;
151               
152                this(void delegate(UnixMountMonitor) dlg)
153                {
154                        this.dlg = dlg;
155                        this.listeners ~= this;
156                }
157               
158                void remove(OnMountpointsChangedDelegateWrapper source)
159                {
160                        foreach(index, wrapper; listeners)
161                        {
162                                if (wrapper.handlerId == source.handlerId)
163                                {
164                                        listeners[index] = null;
165                                        listeners = std.algorithm.remove(listeners, index);
166                                        break;
167                                }
168                        }
169                }
170        }
171
172        /**
173         * Emitted when the unix mount points have changed.
174         */
175        gulong addOnMountpointsChanged(void delegate(UnixMountMonitor) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
176        {
177                auto wrapper = new OnMountpointsChangedDelegateWrapper(dlg);
178                wrapper.handlerId = Signals.connectData(
179                        this,
180                        "mountpoints-changed",
181                        cast(GCallback)&callBackMountpointsChanged,
182                        cast(void*)wrapper,
183                        cast(GClosureNotify)&callBackMountpointsChangedDestroy,
184                        connectFlags);
185                return wrapper.handlerId;
186        }
187       
188        extern(C) static void callBackMountpointsChanged(GUnixMountMonitor* unixmountmonitorStruct, OnMountpointsChangedDelegateWrapper wrapper)
189        {
190                wrapper.dlg(wrapper.outer);
191        }
192       
193        extern(C) static void callBackMountpointsChangedDestroy(OnMountpointsChangedDelegateWrapper wrapper, GClosure* closure)
194        {
195                wrapper.remove(wrapper);
196        }
197
198        protected class OnMountsChangedDelegateWrapper
199        {
200                static OnMountsChangedDelegateWrapper[] listeners;
201                void delegate(UnixMountMonitor) dlg;
202                gulong handlerId;
203               
204                this(void delegate(UnixMountMonitor) dlg)
205                {
206                        this.dlg = dlg;
207                        this.listeners ~= this;
208                }
209               
210                void remove(OnMountsChangedDelegateWrapper source)
211                {
212                        foreach(index, wrapper; listeners)
213                        {
214                                if (wrapper.handlerId == source.handlerId)
215                                {
216                                        listeners[index] = null;
217                                        listeners = std.algorithm.remove(listeners, index);
218                                        break;
219                                }
220                        }
221                }
222        }
223
224        /**
225         * Emitted when the unix mounts have changed.
226         */
227        gulong addOnMountsChanged(void delegate(UnixMountMonitor) dlg, ConnectFlags connectFlags=cast(ConnectFlags)0)
228        {
229                auto wrapper = new OnMountsChangedDelegateWrapper(dlg);
230                wrapper.handlerId = Signals.connectData(
231                        this,
232                        "mounts-changed",
233                        cast(GCallback)&callBackMountsChanged,
234                        cast(void*)wrapper,
235                        cast(GClosureNotify)&callBackMountsChangedDestroy,
236                        connectFlags);
237                return wrapper.handlerId;
238        }
239       
240        extern(C) static void callBackMountsChanged(GUnixMountMonitor* unixmountmonitorStruct, OnMountsChangedDelegateWrapper wrapper)
241        {
242                wrapper.dlg(wrapper.outer);
243        }
244       
245        extern(C) static void callBackMountsChangedDestroy(OnMountsChangedDelegateWrapper wrapper, GClosure* closure)
246        {
247                wrapper.remove(wrapper);
248        }
249}
Note: See TracBrowser for help on using the repository browser.