source: appstream-generator/build/girepo/glib/QueueG.d @ 4841

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

Initial release

File size: 14.7 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 glib.QueueG;
22
23private import gi.glib;
24public  import gi.glibtypes;
25private import glib.ConstructionException;
26private import glib.ListG;
27
28
29/**
30 * Contains the public fields of a
31 * [Queue][glib-Double-ended-Queues].
32 */
33public class QueueG
34{
35        /** the main Gtk struct */
36        protected GQueue* gQueue;
37        protected bool ownedRef;
38
39        /** Get the main Gtk struct */
40        public GQueue* getQueueGStruct()
41        {
42                return gQueue;
43        }
44
45        /** the main Gtk struct as a void* */
46        protected void* getStruct()
47        {
48                return cast(void*)gQueue;
49        }
50
51        /**
52         * Sets our main struct and passes it to the parent class.
53         */
54        public this (GQueue* gQueue, bool ownedRef = false)
55        {
56                this.gQueue = gQueue;
57                this.ownedRef = ownedRef;
58        }
59
60
61        /**
62         * Removes all the elements in @queue. If queue elements contain
63         * dynamically-allocated memory, they should be freed first.
64         *
65         * Since: 2.14
66         */
67        public void clear()
68        {
69                g_queue_clear(gQueue);
70        }
71
72        /**
73         * Copies a @queue. Note that is a shallow copy. If the elements in the
74         * queue consist of pointers to data, the pointers are copied, but the
75         * actual data is not.
76         *
77         * Returns: a copy of @queue
78         *
79         * Since: 2.4
80         */
81        public QueueG copy()
82        {
83                auto p = g_queue_copy(gQueue);
84               
85                if(p is null)
86                {
87                        return null;
88                }
89               
90                return new QueueG(cast(GQueue*) p);
91        }
92
93        /**
94         * Removes @link_ from @queue and frees it.
95         *
96         * @link_ must be part of @queue.
97         *
98         * Params:
99         *     link = a #GList link that must be part of @queue
100         *
101         * Since: 2.4
102         */
103        public void deleteLink(ListG link)
104        {
105                g_queue_delete_link(gQueue, (link is null) ? null : link.getListGStruct());
106        }
107
108        /**
109         * Finds the first link in @queue which contains @data.
110         *
111         * Params:
112         *     data = data to find
113         *
114         * Returns: the first link in @queue which contains @data
115         *
116         * Since: 2.4
117         */
118        public ListG find(void* data)
119        {
120                auto p = g_queue_find(gQueue, data);
121               
122                if(p is null)
123                {
124                        return null;
125                }
126               
127                return new ListG(cast(GList*) p);
128        }
129
130        /**
131         * Finds an element in a #GQueue, using a supplied function to find the
132         * desired element. It iterates over the queue, calling the given function
133         * which should return 0 when the desired element is found. The function
134         * takes two gconstpointer arguments, the #GQueue element's data as the
135         * first argument and the given user data as the second argument.
136         *
137         * Params:
138         *     data = user data passed to @func
139         *     func = a #GCompareFunc to call for each element. It should return 0
140         *         when the desired element is found
141         *
142         * Returns: the found link, or %NULL if it wasn't found
143         *
144         * Since: 2.4
145         */
146        public ListG findCustom(void* data, GCompareFunc func)
147        {
148                auto p = g_queue_find_custom(gQueue, data, func);
149               
150                if(p is null)
151                {
152                        return null;
153                }
154               
155                return new ListG(cast(GList*) p);
156        }
157
158        /**
159         * Calls @func for each element in the queue passing @user_data to the
160         * function.
161         *
162         * Params:
163         *     func = the function to call for each element's data
164         *     userData = user data to pass to @func
165         *
166         * Since: 2.4
167         */
168        public void foreac(GFunc func, void* userData)
169        {
170                g_queue_foreach(gQueue, func, userData);
171        }
172
173        /**
174         * Frees the memory allocated for the #GQueue. Only call this function
175         * if @queue was created with g_queue_new(). If queue elements contain
176         * dynamically-allocated memory, they should be freed first.
177         *
178         * If queue elements contain dynamically-allocated memory, you should
179         * either use g_queue_free_full() or free them manually first.
180         */
181        public void free()
182        {
183                g_queue_free(gQueue);
184        }
185
186        /**
187         * Convenience method, which frees all the memory used by a #GQueue,
188         * and calls the specified destroy function on every element's data.
189         *
190         * Params:
191         *     freeFunc = the function to be called to free each element's data
192         *
193         * Since: 2.32
194         */
195        public void freeFull(GDestroyNotify freeFunc)
196        {
197                g_queue_free_full(gQueue, freeFunc);
198        }
199
200        /**
201         * Returns the number of items in @queue.
202         *
203         * Returns: the number of items in @queue
204         *
205         * Since: 2.4
206         */
207        public uint getLength()
208        {
209                return g_queue_get_length(gQueue);
210        }
211
212        /**
213         * Returns the position of the first element in @queue which contains @data.
214         *
215         * Params:
216         *     data = the data to find
217         *
218         * Returns: the position of the first element in @queue which
219         *     contains @data, or -1 if no element in @queue contains @data
220         *
221         * Since: 2.4
222         */
223        public int index(void* data)
224        {
225                return g_queue_index(gQueue, data);
226        }
227
228        /**
229         * A statically-allocated #GQueue must be initialized with this function
230         * before it can be used. Alternatively you can initialize it with
231         * #G_QUEUE_INIT. It is not necessary to initialize queues created with
232         * g_queue_new().
233         *
234         * Since: 2.14
235         */
236        public void init()
237        {
238                g_queue_init(gQueue);
239        }
240
241        /**
242         * Inserts @data into @queue after @sibling.
243         *
244         * @sibling must be part of @queue. Since GLib 2.44 a %NULL sibling pushes the
245         * data at the head of the queue.
246         *
247         * Params:
248         *     sibling = a #GList link that must be part of @queue, or %NULL to
249         *         push at the head of the queue.
250         *     data = the data to insert
251         *
252         * Since: 2.4
253         */
254        public void insertAfter(ListG sibling, void* data)
255        {
256                g_queue_insert_after(gQueue, (sibling is null) ? null : sibling.getListGStruct(), data);
257        }
258
259        /**
260         * Inserts @data into @queue before @sibling.
261         *
262         * @sibling must be part of @queue. Since GLib 2.44 a %NULL sibling pushes the
263         * data at the tail of the queue.
264         *
265         * Params:
266         *     sibling = a #GList link that must be part of @queue, or %NULL to
267         *         push at the tail of the queue.
268         *     data = the data to insert
269         *
270         * Since: 2.4
271         */
272        public void insertBefore(ListG sibling, void* data)
273        {
274                g_queue_insert_before(gQueue, (sibling is null) ? null : sibling.getListGStruct(), data);
275        }
276
277        /**
278         * Inserts @data into @queue using @func to determine the new position.
279         *
280         * Params:
281         *     data = the data to insert
282         *     func = the #GCompareDataFunc used to compare elements in the queue. It is
283         *         called with two elements of the @queue and @user_data. It should
284         *         return 0 if the elements are equal, a negative value if the first
285         *         element comes before the second, and a positive value if the second
286         *         element comes before the first.
287         *     userData = user data passed to @func
288         *
289         * Since: 2.4
290         */
291        public void insertSorted(void* data, GCompareDataFunc func, void* userData)
292        {
293                g_queue_insert_sorted(gQueue, data, func, userData);
294        }
295
296        /**
297         * Returns %TRUE if the queue is empty.
298         *
299         * Returns: %TRUE if the queue is empty
300         */
301        public bool isEmpty()
302        {
303                return g_queue_is_empty(gQueue) != 0;
304        }
305
306        /**
307         * Returns the position of @link_ in @queue.
308         *
309         * Params:
310         *     link = a #GList link
311         *
312         * Returns: the position of @link_, or -1 if the link is
313         *     not part of @queue
314         *
315         * Since: 2.4
316         */
317        public int linkIndex(ListG link)
318        {
319                return g_queue_link_index(gQueue, (link is null) ? null : link.getListGStruct());
320        }
321
322        /**
323         * Returns the first element of the queue.
324         *
325         * Returns: the data of the first element in the queue, or %NULL
326         *     if the queue is empty
327         */
328        public void* peekHead()
329        {
330                return g_queue_peek_head(gQueue);
331        }
332
333        /**
334         * Returns the first link in @queue.
335         *
336         * Returns: the first link in @queue, or %NULL if @queue is empty
337         *
338         * Since: 2.4
339         */
340        public ListG peekHeadLink()
341        {
342                auto p = g_queue_peek_head_link(gQueue);
343               
344                if(p is null)
345                {
346                        return null;
347                }
348               
349                return new ListG(cast(GList*) p);
350        }
351
352        /**
353         * Returns the @n'th element of @queue.
354         *
355         * Params:
356         *     n = the position of the element
357         *
358         * Returns: the data for the @n'th element of @queue,
359         *     or %NULL if @n is off the end of @queue
360         *
361         * Since: 2.4
362         */
363        public void* peekNth(uint n)
364        {
365                return g_queue_peek_nth(gQueue, n);
366        }
367
368        /**
369         * Returns the link at the given position
370         *
371         * Params:
372         *     n = the position of the link
373         *
374         * Returns: the link at the @n'th position, or %NULL
375         *     if @n is off the end of the list
376         *
377         * Since: 2.4
378         */
379        public ListG peekNthLink(uint n)
380        {
381                auto p = g_queue_peek_nth_link(gQueue, n);
382               
383                if(p is null)
384                {
385                        return null;
386                }
387               
388                return new ListG(cast(GList*) p);
389        }
390
391        /**
392         * Returns the last element of the queue.
393         *
394         * Returns: the data of the last element in the queue, or %NULL
395         *     if the queue is empty
396         */
397        public void* peekTail()
398        {
399                return g_queue_peek_tail(gQueue);
400        }
401
402        /**
403         * Returns the last link in @queue.
404         *
405         * Returns: the last link in @queue, or %NULL if @queue is empty
406         *
407         * Since: 2.4
408         */
409        public ListG peekTailLink()
410        {
411                auto p = g_queue_peek_tail_link(gQueue);
412               
413                if(p is null)
414                {
415                        return null;
416                }
417               
418                return new ListG(cast(GList*) p);
419        }
420
421        /**
422         * Removes the first element of the queue and returns its data.
423         *
424         * Returns: the data of the first element in the queue, or %NULL
425         *     if the queue is empty
426         */
427        public void* popHead()
428        {
429                return g_queue_pop_head(gQueue);
430        }
431
432        /**
433         * Removes and returns the first element of the queue.
434         *
435         * Returns: the #GList element at the head of the queue, or %NULL
436         *     if the queue is empty
437         */
438        public ListG popHeadLink()
439        {
440                auto p = g_queue_pop_head_link(gQueue);
441               
442                if(p is null)
443                {
444                        return null;
445                }
446               
447                return new ListG(cast(GList*) p);
448        }
449
450        /**
451         * Removes the @n'th element of @queue and returns its data.
452         *
453         * Params:
454         *     n = the position of the element
455         *
456         * Returns: the element's data, or %NULL if @n is off the end of @queue
457         *
458         * Since: 2.4
459         */
460        public void* popNth(uint n)
461        {
462                return g_queue_pop_nth(gQueue, n);
463        }
464
465        /**
466         * Removes and returns the link at the given position.
467         *
468         * Params:
469         *     n = the link's position
470         *
471         * Returns: the @n'th link, or %NULL if @n is off the end of @queue
472         *
473         * Since: 2.4
474         */
475        public ListG popNthLink(uint n)
476        {
477                auto p = g_queue_pop_nth_link(gQueue, n);
478               
479                if(p is null)
480                {
481                        return null;
482                }
483               
484                return new ListG(cast(GList*) p);
485        }
486
487        /**
488         * Removes the last element of the queue and returns its data.
489         *
490         * Returns: the data of the last element in the queue, or %NULL
491         *     if the queue is empty
492         */
493        public void* popTail()
494        {
495                return g_queue_pop_tail(gQueue);
496        }
497
498        /**
499         * Removes and returns the last element of the queue.
500         *
501         * Returns: the #GList element at the tail of the queue, or %NULL
502         *     if the queue is empty
503         */
504        public ListG popTailLink()
505        {
506                auto p = g_queue_pop_tail_link(gQueue);
507               
508                if(p is null)
509                {
510                        return null;
511                }
512               
513                return new ListG(cast(GList*) p);
514        }
515
516        /**
517         * Adds a new element at the head of the queue.
518         *
519         * Params:
520         *     data = the data for the new element.
521         */
522        public void pushHead(void* data)
523        {
524                g_queue_push_head(gQueue, data);
525        }
526
527        /**
528         * Adds a new element at the head of the queue.
529         *
530         * Params:
531         *     link = a single #GList element, not a list with more than one element
532         */
533        public void pushHeadLink(ListG link)
534        {
535                g_queue_push_head_link(gQueue, (link is null) ? null : link.getListGStruct());
536        }
537
538        /**
539         * Inserts a new element into @queue at the given position.
540         *
541         * Params:
542         *     data = the data for the new element
543         *     n = the position to insert the new element. If @n is negative or
544         *         larger than the number of elements in the @queue, the element is
545         *         added to the end of the queue.
546         *
547         * Since: 2.4
548         */
549        public void pushNth(void* data, int n)
550        {
551                g_queue_push_nth(gQueue, data, n);
552        }
553
554        /**
555         * Inserts @link into @queue at the given position.
556         *
557         * Params:
558         *     n = the position to insert the link. If this is negative or larger than
559         *         the number of elements in @queue, the link is added to the end of
560         *         @queue.
561         *     link = the link to add to @queue
562         *
563         * Since: 2.4
564         */
565        public void pushNthLink(int n, ListG link)
566        {
567                g_queue_push_nth_link(gQueue, n, (link is null) ? null : link.getListGStruct());
568        }
569
570        /**
571         * Adds a new element at the tail of the queue.
572         *
573         * Params:
574         *     data = the data for the new element
575         */
576        public void pushTail(void* data)
577        {
578                g_queue_push_tail(gQueue, data);
579        }
580
581        /**
582         * Adds a new element at the tail of the queue.
583         *
584         * Params:
585         *     link = a single #GList element, not a list with more than one element
586         */
587        public void pushTailLink(ListG link)
588        {
589                g_queue_push_tail_link(gQueue, (link is null) ? null : link.getListGStruct());
590        }
591
592        /**
593         * Removes the first element in @queue that contains @data.
594         *
595         * Params:
596         *     data = the data to remove
597         *
598         * Returns: %TRUE if @data was found and removed from @queue
599         *
600         * Since: 2.4
601         */
602        public bool remove(void* data)
603        {
604                return g_queue_remove(gQueue, data) != 0;
605        }
606
607        /**
608         * Remove all elements whose data equals @data from @queue.
609         *
610         * Params:
611         *     data = the data to remove
612         *
613         * Returns: the number of elements removed from @queue
614         *
615         * Since: 2.4
616         */
617        public uint removeAll(void* data)
618        {
619                return g_queue_remove_all(gQueue, data);
620        }
621
622        /**
623         * Reverses the order of the items in @queue.
624         *
625         * Since: 2.4
626         */
627        public void reverse()
628        {
629                g_queue_reverse(gQueue);
630        }
631
632        /**
633         * Sorts @queue using @compare_func.
634         *
635         * Params:
636         *     compareFunc = the #GCompareDataFunc used to sort @queue. This function
637         *         is passed two elements of the queue and should return 0 if they are
638         *         equal, a negative value if the first comes before the second, and
639         *         a positive value if the second comes before the first.
640         *     userData = user data passed to @compare_func
641         *
642         * Since: 2.4
643         */
644        public void sort(GCompareDataFunc compareFunc, void* userData)
645        {
646                g_queue_sort(gQueue, compareFunc, userData);
647        }
648
649        /**
650         * Unlinks @link_ so that it will no longer be part of @queue.
651         * The link is not freed.
652         *
653         * @link_ must be part of @queue.
654         *
655         * Params:
656         *     link = a #GList link that must be part of @queue
657         *
658         * Since: 2.4
659         */
660        public void unlink(ListG link)
661        {
662                g_queue_unlink(gQueue, (link is null) ? null : link.getListGStruct());
663        }
664
665        /**
666         * Creates a new #GQueue.
667         *
668         * Returns: a newly allocated #GQueue
669         *
670         * Throws: ConstructionException GTK+ fails to create the object.
671         */
672        public this()
673        {
674                auto p = g_queue_new();
675               
676                if(p is null)
677                {
678                        throw new ConstructionException("null returned by new");
679                }
680               
681                this(cast(GQueue*) p);
682        }
683}
Note: See TracBrowser for help on using the repository browser.