[vala] glib-2.0: make Func, ThreadFunc, HFunc, Thread, and ThreadPool generic
- From: Evan Nemerson <evann src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vala] glib-2.0: make Func, ThreadFunc, HFunc, Thread, and ThreadPool generic
- Date: Wed, 3 Nov 2010 05:45:53 +0000 (UTC)
commit 0c24afbe5ed2e311c82f08dc19ccfce6fbbc4b90
Author: Evan Nemerson <evan coeus-group com>
Date: Tue Nov 2 22:42:54 2010 -0700
glib-2.0: make Func, ThreadFunc, HFunc, Thread, and ThreadPool generic
vapi/glib-2.0.vapi | 48 ++++++++++++++++++++++++++----------------------
1 files changed, 26 insertions(+), 22 deletions(-)
---
diff --git a/vapi/glib-2.0.vapi b/vapi/glib-2.0.vapi
index a4df045..8019248 100644
--- a/vapi/glib-2.0.vapi
+++ b/vapi/glib-2.0.vapi
@@ -1605,8 +1605,8 @@ namespace GLib {
/* Thread support */
- public delegate void* ThreadFunc ();
- public delegate void Func (void* data);
+ public delegate G ThreadFunc<G> ();
+ public delegate void Func<G> (G data);
[CCode (has_type_id = false)]
public enum ThreadPriority {
@@ -1617,17 +1617,19 @@ namespace GLib {
}
[Compact]
- public class Thread {
+ public class Thread<T> {
public static bool supported ();
- public static unowned Thread create (ThreadFunc func, bool joinable) throws ThreadError;
- public static unowned Thread create_full (ThreadFunc func, ulong stack_size, bool joinable, bool bound, ThreadPriority priority) throws ThreadError;
- public static unowned Thread self ();
- public void* join ();
+ [CCode (simple_generics = true)]
+ public static unowned Thread<T> create<T> (ThreadFunc<T> func, bool joinable) throws ThreadError;
+ [CCode (simple_generics = true)]
+ public static unowned Thread<T> create_full<T> (ThreadFunc<T> func, ulong stack_size, bool joinable, bool bound, ThreadPriority priority) throws ThreadError;
+ public static unowned Thread<T> self<T> ();
+ public T join ();
public void set_priority (ThreadPriority priority);
public static void yield ();
- public static void exit (void* retval);
- public static void @foreach (Func thread_func);
-
+ public static void exit (T retval);
+ public static void @foreach<T> (Func<T> thread_func);
+
[CCode (cname = "g_usleep")]
public static void usleep (ulong microseconds);
}
@@ -1699,9 +1701,9 @@ namespace GLib {
[Compact]
[CCode (free_function = "g_thread_pool_free")]
- public class ThreadPool {
- public ThreadPool (Func func, int max_threads, bool exclusive) throws ThreadError;
- public void push (void* data) throws ThreadError;
+ public class ThreadPool<T> {
+ public ThreadPool (Func<T> func, int max_threads, bool exclusive) throws ThreadError;
+ public void push (T data) throws ThreadError;
public void set_max_threads (int max_threads) throws ThreadError;
public int get_max_threads ();
public uint get_num_threads ();
@@ -3500,7 +3502,7 @@ namespace GLib {
public void sort_with_data (CompareDataFunc<G> compare_func);
[ReturnsModifiedPointer ()]
public void concat (owned List<G> list2);
- public void @foreach (Func func);
+ public void @foreach (Func<G> func);
public unowned List<G> first ();
public unowned List<G> last ();
@@ -3556,7 +3558,7 @@ namespace GLib {
public void sort_with_data (CompareDataFunc<G> compare_func);
[ReturnsModifiedPointer ()]
public void concat (owned SList<G> list2);
- public void @foreach (Func func);
+ public void @foreach (Func<G> func);
public unowned SList<G> last ();
public unowned SList<G> nth (uint n);
@@ -3610,6 +3612,8 @@ namespace GLib {
public int index (G data);
public void remove (G data);
public void remove_all (G data);
+ public void delete_link (List<G> link);
+ public void unlink (List<G> link);
public void insert_before (List<G> sibling, owned G data);
public void insert_after (List<G> sibling, owned G data);
public void insert_sorted (owned G data, CompareDataFunc<G> func);
@@ -3622,8 +3626,8 @@ namespace GLib {
public class Sequence<G> {
public Sequence (DestroyNotify? data_destroy);
public int get_length ();
- public void @foreach (Func func);
- public static void foreach_range (SequenceIter<G> begin, SequenceIter<G> end, Func func);
+ public void @foreach (Func<G> func);
+ public static void foreach_range (SequenceIter<G> begin, SequenceIter<G> end, Func<G> func);
public void sort (CompareDataFunc<G> cmp_func);
public void sort_iter (SequenceIterCompareFunc<G> func);
public SequenceIter<G> get_begin_iter ();
@@ -3682,9 +3686,9 @@ namespace GLib {
public void remove_all ();
public List<unowned K> get_keys ();
public List<unowned V> get_values ();
- public void @foreach (HFunc func);
+ public void @foreach (HFunc<K,V> func);
[CCode (cname = "g_hash_table_foreach")]
- public void for_each (HFunc func);
+ public void for_each (HFunc<K,V> func);
public uint size ();
public bool steal (K key);
public void steal_all ();
@@ -3702,7 +3706,7 @@ namespace GLib {
public delegate uint HashFunc<K> (K key);
[CCode (has_target = false)]
public delegate bool EqualFunc<G> (G a, G b);
- public delegate void HFunc (void* key, void* value);
+ public delegate void HFunc<K,V> (K key, V value);
[CCode (has_target = false)]
public delegate void DestroyNotify (void* data);
@@ -3792,7 +3796,7 @@ namespace GLib {
[CCode (cname = "g_ptr_array_sized_new")]
public PtrArray.sized (uint reserved_size);
public void add (void* data);
- public void foreach (GLib.Func func);
+ public void foreach (GLib.Func<void*> func);
[CCode (cname = "g_ptr_array_index")]
public void* index(uint index);
public bool remove (void* data);
@@ -3815,7 +3819,7 @@ namespace GLib {
[CCode (cname = "g_ptr_array_new_with_free_func", simple_generics = true)]
public GenericArray ();
public void add (owned G data);
- public void foreach (GLib.Func func);
+ public void foreach (GLib.Func<G> func);
[CCode (cname = "g_ptr_array_index")]
public unowned G get (uint index);
public bool remove (G data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]