summaryrefslogtreecommitdiff
path: root/gee/gee.h
diff options
context:
space:
mode:
Diffstat (limited to 'gee/gee.h')
-rw-r--r--gee/gee.h1129
1 files changed, 923 insertions, 206 deletions
diff --git a/gee/gee.h b/gee/gee.h
index b1b93e6..e74729b 100644
--- a/gee/gee.h
+++ b/gee/gee.h
@@ -10,13 +10,25 @@
G_BEGIN_DECLS
-#define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
-#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
-#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
-#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
+#define GEE_TYPE_TRAVERSABLE (gee_traversable_get_type ())
+#define GEE_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversable))
+#define GEE_IS_TRAVERSABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_TRAVERSABLE))
+#define GEE_TRAVERSABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_TRAVERSABLE, GeeTraversableIface))
-typedef struct _GeeIterable GeeIterable;
-typedef struct _GeeIterableIface GeeIterableIface;
+typedef struct _GeeTraversable GeeTraversable;
+typedef struct _GeeTraversableIface GeeTraversableIface;
+
+#define GEE_TRAVERSABLE_TYPE_STREAM (gee_traversable_stream_get_type ())
+
+#define GEE_TYPE_LAZY (gee_lazy_get_type ())
+#define GEE_LAZY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LAZY, GeeLazy))
+#define GEE_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_LAZY, GeeLazyClass))
+#define GEE_IS_LAZY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LAZY))
+#define GEE_IS_LAZY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_LAZY))
+#define GEE_LAZY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_LAZY, GeeLazyClass))
+
+typedef struct _GeeLazy GeeLazy;
+typedef struct _GeeLazyClass GeeLazyClass;
#define GEE_TYPE_ITERATOR (gee_iterator_get_type ())
#define GEE_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERATOR, GeeIterator))
@@ -26,6 +38,14 @@ typedef struct _GeeIterableIface GeeIterableIface;
typedef struct _GeeIterator GeeIterator;
typedef struct _GeeIteratorIface GeeIteratorIface;
+#define GEE_TYPE_ITERABLE (gee_iterable_get_type ())
+#define GEE_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ITERABLE, GeeIterable))
+#define GEE_IS_ITERABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ITERABLE))
+#define GEE_ITERABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_ITERABLE, GeeIterableIface))
+
+typedef struct _GeeIterable GeeIterable;
+typedef struct _GeeIterableIface GeeIterableIface;
+
#define GEE_TYPE_COLLECTION (gee_collection_get_type ())
#define GEE_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COLLECTION, GeeCollection))
#define GEE_IS_COLLECTION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COLLECTION))
@@ -53,14 +73,6 @@ typedef struct _GeeAbstractCollectionPrivate GeeAbstractCollectionPrivate;
typedef struct _GeeList GeeList;
typedef struct _GeeListIface GeeListIface;
-#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ())
-#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
-#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
-#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
-
-typedef struct _GeeBidirIterator GeeBidirIterator;
-typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
-
#define GEE_TYPE_LIST_ITERATOR (gee_list_iterator_get_type ())
#define GEE_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LIST_ITERATOR, GeeListIterator))
#define GEE_IS_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_LIST_ITERATOR))
@@ -80,6 +92,98 @@ typedef struct _GeeAbstractList GeeAbstractList;
typedef struct _GeeAbstractListClass GeeAbstractListClass;
typedef struct _GeeAbstractListPrivate GeeAbstractListPrivate;
+#define GEE_TYPE_BIDIR_LIST (gee_bidir_list_get_type ())
+#define GEE_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirList))
+#define GEE_IS_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST))
+#define GEE_BIDIR_LIST_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST, GeeBidirListIface))
+
+typedef struct _GeeBidirList GeeBidirList;
+typedef struct _GeeBidirListIface GeeBidirListIface;
+
+#define GEE_TYPE_BIDIR_ITERATOR (gee_bidir_iterator_get_type ())
+#define GEE_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIterator))
+#define GEE_IS_BIDIR_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_ITERATOR))
+#define GEE_BIDIR_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_ITERATOR, GeeBidirIteratorIface))
+
+typedef struct _GeeBidirIterator GeeBidirIterator;
+typedef struct _GeeBidirIteratorIface GeeBidirIteratorIface;
+
+#define GEE_TYPE_BIDIR_LIST_ITERATOR (gee_bidir_list_iterator_get_type ())
+#define GEE_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIterator))
+#define GEE_IS_BIDIR_LIST_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR))
+#define GEE_BIDIR_LIST_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_LIST_ITERATOR, GeeBidirListIteratorIface))
+
+typedef struct _GeeBidirListIterator GeeBidirListIterator;
+typedef struct _GeeBidirListIteratorIface GeeBidirListIteratorIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_LIST (gee_abstract_bidir_list_get_type ())
+#define GEE_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirList))
+#define GEE_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass))
+#define GEE_IS_ABSTRACT_BIDIR_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST))
+#define GEE_IS_ABSTRACT_BIDIR_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_LIST))
+#define GEE_ABSTRACT_BIDIR_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_LIST, GeeAbstractBidirListClass))
+
+typedef struct _GeeAbstractBidirList GeeAbstractBidirList;
+typedef struct _GeeAbstractBidirListClass GeeAbstractBidirListClass;
+typedef struct _GeeAbstractBidirListPrivate GeeAbstractBidirListPrivate;
+
+#define GEE_TYPE_SET (gee_set_get_type ())
+#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
+#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
+#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
+
+typedef struct _GeeSet GeeSet;
+typedef struct _GeeSetIface GeeSetIface;
+
+#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ())
+#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet))
+#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
+#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET))
+#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET))
+#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
+
+typedef struct _GeeAbstractSet GeeAbstractSet;
+typedef struct _GeeAbstractSetClass GeeAbstractSetClass;
+typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate;
+
+#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
+#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
+#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
+#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
+
+typedef struct _GeeSortedSet GeeSortedSet;
+typedef struct _GeeSortedSetIface GeeSortedSetIface;
+
+#define GEE_TYPE_ABSTRACT_SORTED_SET (gee_abstract_sorted_set_get_type ())
+#define GEE_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSet))
+#define GEE_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
+#define GEE_IS_ABSTRACT_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_SET))
+#define GEE_IS_ABSTRACT_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_SET))
+#define GEE_ABSTRACT_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_SET, GeeAbstractSortedSetClass))
+
+typedef struct _GeeAbstractSortedSet GeeAbstractSortedSet;
+typedef struct _GeeAbstractSortedSetClass GeeAbstractSortedSetClass;
+typedef struct _GeeAbstractSortedSetPrivate GeeAbstractSortedSetPrivate;
+
+#define GEE_TYPE_BIDIR_SORTED_SET (gee_bidir_sorted_set_get_type ())
+#define GEE_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSet))
+#define GEE_IS_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_SET))
+#define GEE_BIDIR_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_SET, GeeBidirSortedSetIface))
+
+typedef struct _GeeBidirSortedSet GeeBidirSortedSet;
+typedef struct _GeeBidirSortedSetIface GeeBidirSortedSetIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET (gee_abstract_bidir_sorted_set_get_type ())
+#define GEE_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSet))
+#define GEE_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET))
+#define GEE_ABSTRACT_BIDIR_SORTED_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_SET, GeeAbstractBidirSortedSetClass))
+
+typedef struct _GeeAbstractBidirSortedSet GeeAbstractBidirSortedSet;
+typedef struct _GeeAbstractBidirSortedSetClass GeeAbstractBidirSortedSetClass;
+typedef struct _GeeAbstractBidirSortedSetPrivate GeeAbstractBidirSortedSetPrivate;
+
#define GEE_TYPE_MAP (gee_map_get_type ())
#define GEE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MAP, GeeMap))
#define GEE_IS_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MAP))
@@ -96,14 +200,6 @@ typedef struct _GeeMapIface GeeMapIface;
typedef struct _GeeMapIterator GeeMapIterator;
typedef struct _GeeMapIteratorIface GeeMapIteratorIface;
-#define GEE_TYPE_SET (gee_set_get_type ())
-#define GEE_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SET, GeeSet))
-#define GEE_IS_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SET))
-#define GEE_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SET, GeeSetIface))
-
-typedef struct _GeeSet GeeSet;
-typedef struct _GeeSetIface GeeSetIface;
-
#define GEE_MAP_TYPE_ENTRY (gee_map_entry_get_type ())
#define GEE_MAP_ENTRY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_MAP_TYPE_ENTRY, GeeMapEntry))
#define GEE_MAP_ENTRY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_MAP_TYPE_ENTRY, GeeMapEntryClass))
@@ -125,6 +221,52 @@ typedef struct _GeeAbstractMap GeeAbstractMap;
typedef struct _GeeAbstractMapClass GeeAbstractMapClass;
typedef struct _GeeAbstractMapPrivate GeeAbstractMapPrivate;
+#define GEE_TYPE_SORTED_MAP (gee_sorted_map_get_type ())
+#define GEE_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMap))
+#define GEE_IS_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_MAP))
+#define GEE_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_MAP, GeeSortedMapIface))
+
+typedef struct _GeeSortedMap GeeSortedMap;
+typedef struct _GeeSortedMapIface GeeSortedMapIface;
+
+#define GEE_TYPE_ABSTRACT_SORTED_MAP (gee_abstract_sorted_map_get_type ())
+#define GEE_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMap))
+#define GEE_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
+#define GEE_IS_ABSTRACT_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP))
+#define GEE_IS_ABSTRACT_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SORTED_MAP))
+#define GEE_ABSTRACT_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SORTED_MAP, GeeAbstractSortedMapClass))
+
+typedef struct _GeeAbstractSortedMap GeeAbstractSortedMap;
+typedef struct _GeeAbstractSortedMapClass GeeAbstractSortedMapClass;
+typedef struct _GeeAbstractSortedMapPrivate GeeAbstractSortedMapPrivate;
+
+#define GEE_TYPE_BIDIR_SORTED_MAP (gee_bidir_sorted_map_get_type ())
+#define GEE_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMap))
+#define GEE_IS_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_SORTED_MAP))
+#define GEE_BIDIR_SORTED_MAP_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_SORTED_MAP, GeeBidirSortedMapIface))
+
+typedef struct _GeeBidirSortedMap GeeBidirSortedMap;
+typedef struct _GeeBidirSortedMapIface GeeBidirSortedMapIface;
+
+#define GEE_TYPE_BIDIR_MAP_ITERATOR (gee_bidir_map_iterator_get_type ())
+#define GEE_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIterator))
+#define GEE_IS_BIDIR_MAP_ITERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR))
+#define GEE_BIDIR_MAP_ITERATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_BIDIR_MAP_ITERATOR, GeeBidirMapIteratorIface))
+
+typedef struct _GeeBidirMapIterator GeeBidirMapIterator;
+typedef struct _GeeBidirMapIteratorIface GeeBidirMapIteratorIface;
+
+#define GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP (gee_abstract_bidir_sorted_map_get_type ())
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMap))
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
+#define GEE_IS_ABSTRACT_BIDIR_SORTED_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP))
+#define GEE_ABSTRACT_BIDIR_SORTED_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_BIDIR_SORTED_MAP, GeeAbstractBidirSortedMapClass))
+
+typedef struct _GeeAbstractBidirSortedMap GeeAbstractBidirSortedMap;
+typedef struct _GeeAbstractBidirSortedMapClass GeeAbstractBidirSortedMapClass;
+typedef struct _GeeAbstractBidirSortedMapPrivate GeeAbstractBidirSortedMapPrivate;
+
#define GEE_TYPE_MULTI_MAP (gee_multi_map_get_type ())
#define GEE_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_MULTI_MAP, GeeMultiMap))
#define GEE_IS_MULTI_MAP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_MULTI_MAP))
@@ -182,17 +324,6 @@ typedef struct _GeeAbstractQueue GeeAbstractQueue;
typedef struct _GeeAbstractQueueClass GeeAbstractQueueClass;
typedef struct _GeeAbstractQueuePrivate GeeAbstractQueuePrivate;
-#define GEE_TYPE_ABSTRACT_SET (gee_abstract_set_get_type ())
-#define GEE_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSet))
-#define GEE_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
-#define GEE_IS_ABSTRACT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ABSTRACT_SET))
-#define GEE_IS_ABSTRACT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ABSTRACT_SET))
-#define GEE_ABSTRACT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ABSTRACT_SET, GeeAbstractSetClass))
-
-typedef struct _GeeAbstractSet GeeAbstractSet;
-typedef struct _GeeAbstractSetClass GeeAbstractSetClass;
-typedef struct _GeeAbstractSetPrivate GeeAbstractSetPrivate;
-
#define GEE_TYPE_ARRAY_LIST (gee_array_list_get_type ())
#define GEE_ARRAY_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_LIST, GeeArrayList))
#define GEE_ARRAY_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_LIST, GeeArrayListClass))
@@ -204,6 +335,25 @@ typedef struct _GeeArrayList GeeArrayList;
typedef struct _GeeArrayListClass GeeArrayListClass;
typedef struct _GeeArrayListPrivate GeeArrayListPrivate;
+#define GEE_TYPE_DEQUE (gee_deque_get_type ())
+#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque))
+#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE))
+#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface))
+
+typedef struct _GeeDeque GeeDeque;
+typedef struct _GeeDequeIface GeeDequeIface;
+
+#define GEE_TYPE_ARRAY_QUEUE (gee_array_queue_get_type ())
+#define GEE_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueue))
+#define GEE_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass))
+#define GEE_IS_ARRAY_QUEUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_ARRAY_QUEUE))
+#define GEE_IS_ARRAY_QUEUE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_ARRAY_QUEUE))
+#define GEE_ARRAY_QUEUE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_ARRAY_QUEUE, GeeArrayQueueClass))
+
+typedef struct _GeeArrayQueue GeeArrayQueue;
+typedef struct _GeeArrayQueueClass GeeArrayQueueClass;
+typedef struct _GeeArrayQueuePrivate GeeArrayQueuePrivate;
+
#define GEE_TYPE_COMPARABLE (gee_comparable_get_type ())
#define GEE_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_COMPARABLE, GeeComparable))
#define GEE_IS_COMPARABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_COMPARABLE))
@@ -212,13 +362,37 @@ typedef struct _GeeArrayListPrivate GeeArrayListPrivate;
typedef struct _GeeComparable GeeComparable;
typedef struct _GeeComparableIface GeeComparableIface;
-#define GEE_TYPE_DEQUE (gee_deque_get_type ())
-#define GEE_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_DEQUE, GeeDeque))
-#define GEE_IS_DEQUE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_DEQUE))
-#define GEE_DEQUE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_DEQUE, GeeDequeIface))
+#define GEE_TYPE_CONCURRENT_LIST (gee_concurrent_list_get_type ())
+#define GEE_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentList))
+#define GEE_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass))
+#define GEE_IS_CONCURRENT_LIST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_LIST))
+#define GEE_IS_CONCURRENT_LIST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_LIST))
+#define GEE_CONCURRENT_LIST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_LIST, GeeConcurrentListClass))
-typedef struct _GeeDeque GeeDeque;
-typedef struct _GeeDequeIface GeeDequeIface;
+typedef struct _GeeConcurrentList GeeConcurrentList;
+typedef struct _GeeConcurrentListClass GeeConcurrentListClass;
+typedef struct _GeeConcurrentListPrivate GeeConcurrentListPrivate;
+
+#define GEE_TYPE_CONCURRENT_SET (gee_concurrent_set_get_type ())
+#define GEE_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSet))
+#define GEE_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass))
+#define GEE_IS_CONCURRENT_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_CONCURRENT_SET))
+#define GEE_IS_CONCURRENT_SET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEE_TYPE_CONCURRENT_SET))
+#define GEE_CONCURRENT_SET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEE_TYPE_CONCURRENT_SET, GeeConcurrentSetClass))
+
+typedef struct _GeeConcurrentSet GeeConcurrentSet;
+typedef struct _GeeConcurrentSetClass GeeConcurrentSetClass;
+typedef struct _GeeConcurrentSetPrivate GeeConcurrentSetPrivate;
+
+#define GEE_CONCURRENT_SET_TYPE_RANGE_TYPE (gee_concurrent_set_range_type_get_type ())
+
+#define GEE_TYPE_HASHABLE (gee_hashable_get_type ())
+#define GEE_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASHABLE, GeeHashable))
+#define GEE_IS_HASHABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_HASHABLE))
+#define GEE_HASHABLE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_HASHABLE, GeeHashableIface))
+
+typedef struct _GeeHashable GeeHashable;
+typedef struct _GeeHashableIface GeeHashableIface;
#define GEE_TYPE_HASH_MAP (gee_hash_map_get_type ())
#define GEE_HASH_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_HASH_MAP, GeeHashMap))
@@ -263,6 +437,15 @@ typedef struct _GeeHashMultiSetPrivate GeeHashMultiSetPrivate;
typedef struct _GeeHashSet GeeHashSet;
typedef struct _GeeHashSetClass GeeHashSetClass;
typedef struct _GeeHashSetPrivate GeeHashSetPrivate;
+typedef struct _GeeHazardPointer GeeHazardPointer;
+typedef struct _GeeHazardPointerNode GeeHazardPointerNode;
+
+#define GEE_HAZARD_POINTER_TYPE_POLICY (gee_hazard_pointer_policy_get_type ())
+
+#define GEE_HAZARD_POINTER_TYPE_RELEASE_POLICY (gee_hazard_pointer_release_policy_get_type ())
+typedef struct _GeeHazardPointerContext GeeHazardPointerContext;
+typedef struct _GeeHazardPointerFreeNode GeeHazardPointerFreeNode;
+typedef struct _GeeLazyPrivate GeeLazyPrivate;
#define GEE_TYPE_LINKED_LIST (gee_linked_list_get_type ())
#define GEE_LINKED_LIST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_LINKED_LIST, GeeLinkedList))
@@ -287,14 +470,6 @@ typedef struct _GeePriorityQueue GeePriorityQueue;
typedef struct _GeePriorityQueueClass GeePriorityQueueClass;
typedef struct _GeePriorityQueuePrivate GeePriorityQueuePrivate;
-#define GEE_TYPE_SORTED_SET (gee_sorted_set_get_type ())
-#define GEE_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_SORTED_SET, GeeSortedSet))
-#define GEE_IS_SORTED_SET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEE_TYPE_SORTED_SET))
-#define GEE_SORTED_SET_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GEE_TYPE_SORTED_SET, GeeSortedSetIface))
-
-typedef struct _GeeSortedSet GeeSortedSet;
-typedef struct _GeeSortedSetIface GeeSortedSetIface;
-
#define GEE_TYPE_TREE_MAP (gee_tree_map_get_type ())
#define GEE_TREE_MAP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEE_TYPE_TREE_MAP, GeeTreeMap))
#define GEE_TREE_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEE_TYPE_TREE_MAP, GeeTreeMapClass))
@@ -339,23 +514,55 @@ typedef struct _GeeTreeSet GeeTreeSet;
typedef struct _GeeTreeSetClass GeeTreeSetClass;
typedef struct _GeeTreeSetPrivate GeeTreeSetPrivate;
+typedef gboolean (*GeeForallFunc) (gpointer g, void* user_data);
+typedef enum {
+ GEE_TRAVERSABLE_STREAM_YIELD,
+ GEE_TRAVERSABLE_STREAM_CONTINUE,
+ GEE_TRAVERSABLE_STREAM_END
+} GeeTraversableStream;
+
+typedef GeeTraversableStream (*GeeStreamFunc) (GeeTraversableStream state, GeeLazy* g, GeeLazy** lazy, void* user_data);
struct _GeeIteratorIface {
GTypeInterface parent_iface;
gboolean (*next) (GeeIterator* self);
gboolean (*has_next) (GeeIterator* self);
- gboolean (*first) (GeeIterator* self);
gpointer (*get) (GeeIterator* self);
void (*remove) (GeeIterator* self);
+ gboolean (*get_valid) (GeeIterator* self);
+ gboolean (*get_read_only) (GeeIterator* self);
+};
+
+typedef gpointer (*GeeFoldFunc) (gpointer g, gpointer a, void* user_data);
+typedef gpointer (*GeeMapFunc) (gpointer g, void* user_data);
+typedef gboolean (*GeePredicate) (gconstpointer g, void* user_data);
+struct _GeeTraversableIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeTraversable* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeTraversable* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeTraversable* self);
+ gboolean (*foreach) (GeeTraversable* self, GeeForallFunc f, void* f_target);
+ GeeIterator* (*stream) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+ gpointer (*fold) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+ GeeIterator* (*map) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
+ GeeIterator* (*scan) (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+ GeeIterator* (*filter) (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
+ GeeIterator* (*chop) (GeeTraversable* self, gint offset, gint length);
+ GType (*get_element_type) (GeeTraversable* self);
};
struct _GeeIterableIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeIterable* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeIterable* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeIterable* self);
GeeIterator* (*iterator) (GeeIterable* self);
- GType (*get_element_type) (GeeIterable* self);
};
struct _GeeCollectionIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeCollection* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeCollection* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeCollection* self);
gboolean (*contains) (GeeCollection* self, gconstpointer item);
gboolean (*add) (GeeCollection* self, gconstpointer item);
gboolean (*remove) (GeeCollection* self, gconstpointer item);
@@ -367,6 +574,7 @@ struct _GeeCollectionIface {
gpointer* (*to_array) (GeeCollection* self, int* result_length1);
gint (*get_size) (GeeCollection* self);
gboolean (*get_is_empty) (GeeCollection* self);
+ gboolean (*get_read_only) (GeeCollection* self);
GeeCollection* (*get_read_only_view) (GeeCollection* self);
};
@@ -381,34 +589,35 @@ struct _GeeAbstractCollectionClass {
gboolean (*add) (GeeAbstractCollection* self, gconstpointer item);
gboolean (*remove) (GeeAbstractCollection* self, gconstpointer item);
void (*clear) (GeeAbstractCollection* self);
- gpointer* (*to_array) (GeeAbstractCollection* self, int* result_length1);
- gboolean (*add_all) (GeeAbstractCollection* self, GeeCollection* collection);
- gboolean (*contains_all) (GeeAbstractCollection* self, GeeCollection* collection);
- gboolean (*remove_all) (GeeAbstractCollection* self, GeeCollection* collection);
- gboolean (*retain_all) (GeeAbstractCollection* self, GeeCollection* collection);
GeeIterator* (*iterator) (GeeAbstractCollection* self);
+ gboolean (*foreach) (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
+ void (*reserved0) (GeeAbstractCollection* self);
+ void (*reserved1) (GeeAbstractCollection* self);
+ void (*reserved2) (GeeAbstractCollection* self);
+ void (*reserved3) (GeeAbstractCollection* self);
+ void (*reserved4) (GeeAbstractCollection* self);
+ void (*reserved5) (GeeAbstractCollection* self);
+ void (*reserved6) (GeeAbstractCollection* self);
+ void (*reserved7) (GeeAbstractCollection* self);
+ void (*reserved8) (GeeAbstractCollection* self);
+ void (*reserved9) (GeeAbstractCollection* self);
gint (*get_size) (GeeAbstractCollection* self);
- gboolean (*get_is_empty) (GeeAbstractCollection* self);
+ gboolean (*get_read_only) (GeeAbstractCollection* self);
GeeCollection* (*get_read_only_view) (GeeAbstractCollection* self);
};
-struct _GeeBidirIteratorIface {
- GTypeInterface parent_iface;
- gboolean (*previous) (GeeBidirIterator* self);
- gboolean (*has_previous) (GeeBidirIterator* self);
- gboolean (*last) (GeeBidirIterator* self);
-};
-
struct _GeeListIteratorIface {
GTypeInterface parent_iface;
void (*set) (GeeListIterator* self, gconstpointer item);
- void (*insert) (GeeListIterator* self, gconstpointer item);
void (*add) (GeeListIterator* self, gconstpointer item);
gint (*index) (GeeListIterator* self);
};
struct _GeeListIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeList* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeList* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeList* self);
GeeListIterator* (*list_iterator) (GeeList* self);
gpointer (*get) (GeeList* self, gint index);
void (*set) (GeeList* self, gint index, gconstpointer item);
@@ -419,7 +628,7 @@ struct _GeeListIface {
gpointer (*first) (GeeList* self);
gpointer (*last) (GeeList* self);
void (*insert_all) (GeeList* self, gint index, GeeCollection* collection);
- void (*sort) (GeeList* self, GCompareFunc compare_func);
+ void (*sort) (GeeList* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
GeeList* (*get_read_only_view) (GeeList* self);
};
@@ -437,52 +646,222 @@ struct _GeeAbstractListClass {
void (*insert) (GeeAbstractList* self, gint index, gconstpointer item);
gpointer (*remove_at) (GeeAbstractList* self, gint index);
GeeList* (*slice) (GeeAbstractList* self, gint start, gint stop);
- gpointer (*first) (GeeAbstractList* self);
- gpointer (*last) (GeeAbstractList* self);
- void (*insert_all) (GeeAbstractList* self, gint index, GeeCollection* collection);
+ void (*reserved0) (GeeAbstractList* self);
+ void (*reserved1) (GeeAbstractList* self);
+ void (*reserved2) (GeeAbstractList* self);
+ void (*reserved3) (GeeAbstractList* self);
+ void (*reserved4) (GeeAbstractList* self);
+ void (*reserved5) (GeeAbstractList* self);
+ void (*reserved6) (GeeAbstractList* self);
+ void (*reserved7) (GeeAbstractList* self);
+ void (*reserved8) (GeeAbstractList* self);
+ void (*reserved9) (GeeAbstractList* self);
GeeList* (*get_read_only_view) (GeeAbstractList* self);
};
+struct _GeeBidirIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirIterator* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirIterator* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirIterator* self);
+ gboolean (*previous) (GeeBidirIterator* self);
+ gboolean (*has_previous) (GeeBidirIterator* self);
+ gboolean (*first) (GeeBidirIterator* self);
+ gboolean (*last) (GeeBidirIterator* self);
+};
+
+struct _GeeBidirListIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirListIterator* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirListIterator* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirListIterator* self);
+ void (*insert) (GeeBidirListIterator* self, gconstpointer item);
+};
+
+struct _GeeBidirListIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirList* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirList* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirList* self);
+ GeeBidirListIterator* (*bidir_list_iterator) (GeeBidirList* self);
+ GeeBidirList* (*get_read_only_view) (GeeBidirList* self);
+};
+
+struct _GeeAbstractBidirList {
+ GeeAbstractList parent_instance;
+ GeeAbstractBidirListPrivate * priv;
+};
+
+struct _GeeAbstractBidirListClass {
+ GeeAbstractListClass parent_class;
+ GeeBidirListIterator* (*bidir_list_iterator) (GeeAbstractBidirList* self);
+ void (*reserved0) (GeeAbstractBidirList* self);
+ void (*reserved1) (GeeAbstractBidirList* self);
+ void (*reserved2) (GeeAbstractBidirList* self);
+ void (*reserved3) (GeeAbstractBidirList* self);
+ void (*reserved4) (GeeAbstractBidirList* self);
+ void (*reserved5) (GeeAbstractBidirList* self);
+ void (*reserved6) (GeeAbstractBidirList* self);
+ void (*reserved7) (GeeAbstractBidirList* self);
+ void (*reserved8) (GeeAbstractBidirList* self);
+ void (*reserved9) (GeeAbstractBidirList* self);
+ GeeBidirList* (*get_read_only_view) (GeeAbstractBidirList* self);
+};
+
+struct _GeeSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeSet* self);
+ GeeSet* (*get_read_only_view) (GeeSet* self);
+};
+
+struct _GeeAbstractSet {
+ GeeAbstractCollection parent_instance;
+ GeeAbstractSetPrivate * priv;
+};
+
+struct _GeeAbstractSetClass {
+ GeeAbstractCollectionClass parent_class;
+ void (*reserved0) (GeeAbstractSet* self);
+ void (*reserved1) (GeeAbstractSet* self);
+ void (*reserved2) (GeeAbstractSet* self);
+ void (*reserved3) (GeeAbstractSet* self);
+ void (*reserved4) (GeeAbstractSet* self);
+ void (*reserved5) (GeeAbstractSet* self);
+ void (*reserved6) (GeeAbstractSet* self);
+ void (*reserved7) (GeeAbstractSet* self);
+ void (*reserved8) (GeeAbstractSet* self);
+ void (*reserved9) (GeeAbstractSet* self);
+ GeeSet* (*get_read_only_view) (GeeAbstractSet* self);
+};
+
+struct _GeeSortedSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeSortedSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeSortedSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeSortedSet* self);
+ gpointer (*first) (GeeSortedSet* self);
+ gpointer (*last) (GeeSortedSet* self);
+ GeeIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
+ gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
+ GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
+ GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
+ GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
+ GeeSortedSet* (*get_read_only_view) (GeeSortedSet* self);
+};
+
+struct _GeeAbstractSortedSet {
+ GeeAbstractSet parent_instance;
+ GeeAbstractSortedSetPrivate * priv;
+};
+
+struct _GeeAbstractSortedSetClass {
+ GeeAbstractSetClass parent_class;
+ gpointer (*first) (GeeAbstractSortedSet* self);
+ gpointer (*last) (GeeAbstractSortedSet* self);
+ GeeIterator* (*iterator_at) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*lower) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*higher) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*floor) (GeeAbstractSortedSet* self, gconstpointer element);
+ gpointer (*ceil) (GeeAbstractSortedSet* self, gconstpointer element);
+ GeeSortedSet* (*head_set) (GeeAbstractSortedSet* self, gconstpointer before);
+ GeeSortedSet* (*tail_set) (GeeAbstractSortedSet* self, gconstpointer after);
+ GeeSortedSet* (*sub_set) (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
+ void (*reserved0) (GeeAbstractSortedSet* self);
+ void (*reserved1) (GeeAbstractSortedSet* self);
+ void (*reserved2) (GeeAbstractSortedSet* self);
+ void (*reserved3) (GeeAbstractSortedSet* self);
+ void (*reserved4) (GeeAbstractSortedSet* self);
+ void (*reserved5) (GeeAbstractSortedSet* self);
+ void (*reserved6) (GeeAbstractSortedSet* self);
+ void (*reserved7) (GeeAbstractSortedSet* self);
+ void (*reserved8) (GeeAbstractSortedSet* self);
+ void (*reserved9) (GeeAbstractSortedSet* self);
+ GeeSortedSet* (*get_read_only_view) (GeeAbstractSortedSet* self);
+};
+
+struct _GeeBidirSortedSetIface {
+ GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeBidirSortedSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeBidirSortedSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeBidirSortedSet* self);
+ GeeBidirIterator* (*bidir_iterator) (GeeBidirSortedSet* self);
+ GeeBidirSortedSet* (*get_read_only_view) (GeeBidirSortedSet* self);
+};
+
+struct _GeeAbstractBidirSortedSet {
+ GeeAbstractSortedSet parent_instance;
+ GeeAbstractBidirSortedSetPrivate * priv;
+};
+
+struct _GeeAbstractBidirSortedSetClass {
+ GeeAbstractSortedSetClass parent_class;
+ GeeBidirIterator* (*bidir_iterator) (GeeAbstractBidirSortedSet* self);
+ void (*reserved0) (GeeAbstractBidirSortedSet* self);
+ void (*reserved1) (GeeAbstractBidirSortedSet* self);
+ void (*reserved2) (GeeAbstractBidirSortedSet* self);
+ void (*reserved3) (GeeAbstractBidirSortedSet* self);
+ void (*reserved4) (GeeAbstractBidirSortedSet* self);
+ void (*reserved5) (GeeAbstractBidirSortedSet* self);
+ void (*reserved6) (GeeAbstractBidirSortedSet* self);
+ void (*reserved7) (GeeAbstractBidirSortedSet* self);
+ void (*reserved8) (GeeAbstractBidirSortedSet* self);
+ void (*reserved9) (GeeAbstractBidirSortedSet* self);
+ GeeBidirSortedSet* (*get_read_only_view) (GeeAbstractBidirSortedSet* self);
+};
+
+typedef gpointer (*GeeFoldMapFunc) (gconstpointer k, gconstpointer v, gpointer a, void* user_data);
+typedef gboolean (*GeeForallMapFunc) (gconstpointer k, gconstpointer v, void* user_data);
struct _GeeMapIteratorIface {
GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMapIterator* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMapIterator* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMapIterator* self);
+ GType (*get_v_type) (GeeMapIterator* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMapIterator* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMapIterator* self);
gboolean (*next) (GeeMapIterator* self);
gboolean (*has_next) (GeeMapIterator* self);
- gboolean (*first) (GeeMapIterator* self);
gpointer (*get_key) (GeeMapIterator* self);
gpointer (*get_value) (GeeMapIterator* self);
void (*set_value) (GeeMapIterator* self, gconstpointer value);
void (*unset) (GeeMapIterator* self);
-};
-
-struct _GeeSetIface {
- GTypeInterface parent_iface;
- GeeSet* (*get_read_only_view) (GeeSet* self);
+ gpointer (*fold) (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
+ gboolean (*foreach) (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
+ gboolean (*get_valid) (GeeMapIterator* self);
+ gboolean (*get_mutable) (GeeMapIterator* self);
+ gboolean (*get_read_only) (GeeMapIterator* self);
};
struct _GeeMapIface {
GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMap* self);
+ GType (*get_v_type) (GeeMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMap* self);
gboolean (*has_key) (GeeMap* self, gconstpointer key);
- gboolean (*contains) (GeeMap* self, gconstpointer key);
gboolean (*has) (GeeMap* self, gconstpointer key, gconstpointer value);
gpointer (*get) (GeeMap* self, gconstpointer key);
void (*set) (GeeMap* self, gconstpointer key, gconstpointer value);
gboolean (*unset) (GeeMap* self, gconstpointer key, gpointer* value);
- gboolean (*remove) (GeeMap* self, gconstpointer key, gpointer* value);
void (*clear) (GeeMap* self);
GeeMapIterator* (*map_iterator) (GeeMap* self);
void (*set_all) (GeeMap* self, GeeMap* map);
gboolean (*unset_all) (GeeMap* self, GeeMap* map);
- gboolean (*remove_all) (GeeMap* self, GeeMap* map);
gboolean (*has_all) (GeeMap* self, GeeMap* map);
- gboolean (*contains_all) (GeeMap* self, GeeMap* map);
gint (*get_size) (GeeMap* self);
gboolean (*get_is_empty) (GeeMap* self);
+ gboolean (*get_read_only) (GeeMap* self);
GeeSet* (*get_keys) (GeeMap* self);
GeeCollection* (*get_values) (GeeMap* self);
GeeSet* (*get_entries) (GeeMap* self);
GeeMap* (*get_read_only_view) (GeeMap* self);
- GType (*get_key_type) (GeeMap* self);
- GType (*get_value_type) (GeeMap* self);
};
struct _GeeAbstractMap {
@@ -499,24 +878,124 @@ struct _GeeAbstractMapClass {
gboolean (*unset) (GeeAbstractMap* self, gconstpointer key, gpointer* value);
GeeMapIterator* (*map_iterator) (GeeAbstractMap* self);
void (*clear) (GeeAbstractMap* self);
- void (*set_all) (GeeAbstractMap* self, GeeMap* map);
- gboolean (*unset_all) (GeeAbstractMap* self, GeeMap* map);
- gboolean (*has_all) (GeeAbstractMap* self, GeeMap* map);
+ gboolean (*foreach) (GeeAbstractMap* self, GeeForallFunc f, void* f_target);
+ GeeIterator* (*stream) (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+ void (*reserved0) (GeeAbstractMap* self);
+ void (*reserved1) (GeeAbstractMap* self);
+ void (*reserved2) (GeeAbstractMap* self);
+ void (*reserved3) (GeeAbstractMap* self);
+ void (*reserved4) (GeeAbstractMap* self);
+ void (*reserved5) (GeeAbstractMap* self);
+ void (*reserved6) (GeeAbstractMap* self);
+ void (*reserved7) (GeeAbstractMap* self);
+ void (*reserved8) (GeeAbstractMap* self);
+ void (*reserved9) (GeeAbstractMap* self);
gint (*get_size) (GeeAbstractMap* self);
- gboolean (*get_is_empty) (GeeAbstractMap* self);
+ gboolean (*get_read_only) (GeeAbstractMap* self);
GeeSet* (*get_keys) (GeeAbstractMap* self);
GeeCollection* (*get_values) (GeeAbstractMap* self);
GeeSet* (*get_entries) (GeeAbstractMap* self);
GeeMap* (*get_read_only_view) (GeeAbstractMap* self);
};
+struct _GeeSortedMapIface {
+ GTypeInterface parent_iface;
+ GeeSortedMap* (*head_map) (GeeSortedMap* self, gconstpointer before);
+ GeeSortedMap* (*tail_map) (GeeSortedMap* self, gconstpointer after);
+ GeeSortedMap* (*sub_map) (GeeSortedMap* self, gconstpointer before, gconstpointer after);
+ GeeSortedSet* (*get_ascending_keys) (GeeSortedMap* self);
+ GeeSortedSet* (*get_ascending_entries) (GeeSortedMap* self);
+ GeeSortedMap* (*get_read_only_view) (GeeSortedMap* self);
+};
+
+struct _GeeAbstractSortedMap {
+ GeeAbstractMap parent_instance;
+ GeeAbstractSortedMapPrivate * priv;
+};
+
+struct _GeeAbstractSortedMapClass {
+ GeeAbstractMapClass parent_class;
+ GeeSortedMap* (*head_map) (GeeAbstractSortedMap* self, gconstpointer before);
+ GeeSortedMap* (*tail_map) (GeeAbstractSortedMap* self, gconstpointer after);
+ GeeSortedMap* (*sub_map) (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after);
+ void (*reserved0) (GeeAbstractSortedMap* self);
+ void (*reserved1) (GeeAbstractSortedMap* self);
+ void (*reserved2) (GeeAbstractSortedMap* self);
+ void (*reserved3) (GeeAbstractSortedMap* self);
+ void (*reserved4) (GeeAbstractSortedMap* self);
+ void (*reserved5) (GeeAbstractSortedMap* self);
+ void (*reserved6) (GeeAbstractSortedMap* self);
+ void (*reserved7) (GeeAbstractSortedMap* self);
+ void (*reserved8) (GeeAbstractSortedMap* self);
+ void (*reserved9) (GeeAbstractSortedMap* self);
+ GeeSortedSet* (*get_ascending_keys) (GeeAbstractSortedMap* self);
+ GeeSortedSet* (*get_ascending_entries) (GeeAbstractSortedMap* self);
+};
+
+struct _GeeBidirMapIteratorIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeBidirMapIterator* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeBidirMapIterator* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeBidirMapIterator* self);
+ GType (*get_v_type) (GeeBidirMapIterator* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeBidirMapIterator* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeBidirMapIterator* self);
+ gboolean (*previous) (GeeBidirMapIterator* self);
+ gboolean (*has_previous) (GeeBidirMapIterator* self);
+ gboolean (*first) (GeeBidirMapIterator* self);
+ gboolean (*last) (GeeBidirMapIterator* self);
+};
+
+struct _GeeBidirSortedMapIface {
+ GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeBidirSortedMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeBidirSortedMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeBidirSortedMap* self);
+ GType (*get_v_type) (GeeBidirSortedMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeBidirSortedMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeBidirSortedMap* self);
+ GeeBidirMapIterator* (*bidir_map_iterator) (GeeBidirSortedMap* self);
+ GeeBidirSortedMap* (*get_read_only_view) (GeeBidirSortedMap* self);
+};
+
+struct _GeeAbstractBidirSortedMap {
+ GeeAbstractSortedMap parent_instance;
+ GeeAbstractBidirSortedMapPrivate * priv;
+};
+
+struct _GeeAbstractBidirSortedMapClass {
+ GeeAbstractSortedMapClass parent_class;
+ GeeBidirMapIterator* (*bidir_map_iterator) (GeeAbstractBidirSortedMap* self);
+ void (*reserved0) (GeeAbstractBidirSortedMap* self);
+ void (*reserved1) (GeeAbstractBidirSortedMap* self);
+ void (*reserved2) (GeeAbstractBidirSortedMap* self);
+ void (*reserved3) (GeeAbstractBidirSortedMap* self);
+ void (*reserved4) (GeeAbstractBidirSortedMap* self);
+ void (*reserved5) (GeeAbstractBidirSortedMap* self);
+ void (*reserved6) (GeeAbstractBidirSortedMap* self);
+ void (*reserved7) (GeeAbstractBidirSortedMap* self);
+ void (*reserved8) (GeeAbstractBidirSortedMap* self);
+ void (*reserved9) (GeeAbstractBidirSortedMap* self);
+ GeeBidirSortedMap* (*get_read_only_view) (GeeAbstractBidirSortedMap* self);
+};
+
struct _GeeMultiSetIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeMultiSet* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeMultiSet* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeMultiSet* self);
gint (*count) (GeeMultiSet* self, gconstpointer item);
+ GeeMultiSet* (*get_read_only_view) (GeeMultiSet* self);
};
struct _GeeMultiMapIface {
GTypeInterface parent_iface;
+ GType (*get_k_type) (GeeMultiMap* self);
+ GBoxedCopyFunc (*get_k_dup_func) (GeeMultiMap* self);
+ GDestroyNotify (*get_k_destroy_func) (GeeMultiMap* self);
+ GType (*get_v_type) (GeeMultiMap* self);
+ GBoxedCopyFunc (*get_v_dup_func) (GeeMultiMap* self);
+ GDestroyNotify (*get_v_destroy_func) (GeeMultiMap* self);
GeeSet* (*get_keys) (GeeMultiMap* self);
GeeMultiSet* (*get_all_keys) (GeeMultiMap* self);
GeeCollection* (*get_values) (GeeMultiMap* self);
@@ -526,9 +1005,13 @@ struct _GeeMultiMapIface {
gboolean (*remove) (GeeMultiMap* self, gconstpointer key, gconstpointer value);
gboolean (*remove_all) (GeeMultiMap* self, gconstpointer key);
void (*clear) (GeeMultiMap* self);
+ GeeMapIterator* (*map_iterator) (GeeMultiMap* self);
gint (*get_size) (GeeMultiMap* self);
+ gboolean (*get_read_only) (GeeMultiMap* self);
+ GeeMultiMap* (*get_read_only_view) (GeeMultiMap* self);
};
+typedef gboolean (*GeeEqualDataFunc) (gconstpointer a, gconstpointer b, void* user_data);
struct _GeeAbstractMultiMap {
GObject parent_instance;
GeeAbstractMultiMapPrivate * priv;
@@ -539,7 +1022,17 @@ struct _GeeAbstractMultiMapClass {
GObjectClass parent_class;
GeeCollection* (*create_value_storage) (GeeAbstractMultiMap* self);
GeeMultiSet* (*create_multi_key_set) (GeeAbstractMultiMap* self);
- GEqualFunc (*get_value_equal_func) (GeeAbstractMultiMap* self);
+ GeeEqualDataFunc (*get_value_equal_func) (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
+ void (*reserved0) (GeeAbstractMultiMap* self);
+ void (*reserved1) (GeeAbstractMultiMap* self);
+ void (*reserved2) (GeeAbstractMultiMap* self);
+ void (*reserved3) (GeeAbstractMultiMap* self);
+ void (*reserved4) (GeeAbstractMultiMap* self);
+ void (*reserved5) (GeeAbstractMultiMap* self);
+ void (*reserved6) (GeeAbstractMultiMap* self);
+ void (*reserved7) (GeeAbstractMultiMap* self);
+ void (*reserved8) (GeeAbstractMultiMap* self);
+ GeeMultiMap* (*get_read_only_view) (GeeAbstractMultiMap* self);
};
struct _GeeAbstractMultiSet {
@@ -550,10 +1043,23 @@ struct _GeeAbstractMultiSet {
struct _GeeAbstractMultiSetClass {
GeeAbstractCollectionClass parent_class;
+ void (*reserved0) (GeeAbstractMultiSet* self);
+ void (*reserved1) (GeeAbstractMultiSet* self);
+ void (*reserved2) (GeeAbstractMultiSet* self);
+ void (*reserved3) (GeeAbstractMultiSet* self);
+ void (*reserved4) (GeeAbstractMultiSet* self);
+ void (*reserved5) (GeeAbstractMultiSet* self);
+ void (*reserved6) (GeeAbstractMultiSet* self);
+ void (*reserved7) (GeeAbstractMultiSet* self);
+ void (*reserved8) (GeeAbstractMultiSet* self);
+ GeeMultiSet* (*get_read_only_view) (GeeAbstractMultiSet* self);
};
struct _GeeQueueIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeQueue* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeQueue* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeQueue* self);
gboolean (*offer) (GeeQueue* self, gconstpointer element);
gpointer (*peek) (GeeQueue* self);
gpointer (*poll) (GeeQueue* self);
@@ -570,27 +1076,25 @@ struct _GeeAbstractQueue {
struct _GeeAbstractQueueClass {
GeeAbstractCollectionClass parent_class;
- gboolean (*offer) (GeeAbstractQueue* self, gconstpointer element);
gpointer (*peek) (GeeAbstractQueue* self);
gpointer (*poll) (GeeAbstractQueue* self);
- gint (*drain) (GeeAbstractQueue* self, GeeCollection* recipient, gint amount);
+ void (*reserved0) (GeeAbstractQueue* self);
+ void (*reserved1) (GeeAbstractQueue* self);
+ void (*reserved2) (GeeAbstractQueue* self);
+ void (*reserved3) (GeeAbstractQueue* self);
+ void (*reserved4) (GeeAbstractQueue* self);
+ void (*reserved5) (GeeAbstractQueue* self);
+ void (*reserved6) (GeeAbstractQueue* self);
+ void (*reserved7) (GeeAbstractQueue* self);
+ void (*reserved8) (GeeAbstractQueue* self);
+ void (*reserved9) (GeeAbstractQueue* self);
gint (*get_capacity) (GeeAbstractQueue* self);
gint (*get_remaining_capacity) (GeeAbstractQueue* self);
gboolean (*get_is_full) (GeeAbstractQueue* self);
};
-struct _GeeAbstractSet {
- GeeAbstractCollection parent_instance;
- GeeAbstractSetPrivate * priv;
-};
-
-struct _GeeAbstractSetClass {
- GeeAbstractCollectionClass parent_class;
- GeeSet* (*get_read_only_view) (GeeAbstractSet* self);
-};
-
struct _GeeArrayList {
- GeeAbstractList parent_instance;
+ GeeAbstractBidirList parent_instance;
GeeArrayListPrivate * priv;
gpointer* _items;
gint _items_length1;
@@ -599,16 +1103,14 @@ struct _GeeArrayList {
};
struct _GeeArrayListClass {
- GeeAbstractListClass parent_class;
-};
-
-struct _GeeComparableIface {
- GTypeInterface parent_iface;
- gint (*compare_to) (GeeComparable* self, gconstpointer object);
+ GeeAbstractBidirListClass parent_class;
};
struct _GeeDequeIface {
GTypeInterface parent_iface;
+ GType (*get_g_type) (GeeDeque* self);
+ GBoxedCopyFunc (*get_g_dup_func) (GeeDeque* self);
+ GDestroyNotify (*get_g_destroy_func) (GeeDeque* self);
gboolean (*offer_head) (GeeDeque* self, gconstpointer element);
gpointer (*peek_head) (GeeDeque* self);
gpointer (*poll_head) (GeeDeque* self);
@@ -619,6 +1121,52 @@ struct _GeeDequeIface {
gint (*drain_tail) (GeeDeque* self, GeeCollection* recipient, gint amount);
};
+struct _GeeArrayQueue {
+ GeeAbstractQueue parent_instance;
+ GeeArrayQueuePrivate * priv;
+};
+
+struct _GeeArrayQueueClass {
+ GeeAbstractQueueClass parent_class;
+};
+
+struct _GeeComparableIface {
+ GTypeInterface parent_iface;
+ gint (*compare_to) (GeeComparable* self, gconstpointer object);
+};
+
+struct _GeeConcurrentList {
+ GeeAbstractList parent_instance;
+ GeeConcurrentListPrivate * priv;
+};
+
+struct _GeeConcurrentListClass {
+ GeeAbstractListClass parent_class;
+};
+
+struct _GeeConcurrentSet {
+ GeeAbstractSortedSet parent_instance;
+ GeeConcurrentSetPrivate * priv;
+};
+
+struct _GeeConcurrentSetClass {
+ GeeAbstractSortedSetClass parent_class;
+};
+
+typedef enum {
+ GEE_CONCURRENT_SET_RANGE_TYPE_HEAD,
+ GEE_CONCURRENT_SET_RANGE_TYPE_TAIL,
+ GEE_CONCURRENT_SET_RANGE_TYPE_BOUNDED,
+ GEE_CONCURRENT_SET_RANGE_TYPE_EMPTY
+} GeeConcurrentSetRangeType;
+
+typedef guint (*GeeHashDataFunc) (gconstpointer v, void* user_data);
+struct _GeeHashableIface {
+ GTypeInterface parent_iface;
+ guint (*hash) (GeeHashable* self);
+ gboolean (*equal_to) (GeeHashable* self, gconstpointer object);
+};
+
struct _GeeHashMap {
GeeAbstractMap parent_instance;
GeeHashMapPrivate * priv;
@@ -655,13 +1203,51 @@ struct _GeeHashSetClass {
GeeAbstractSetClass parent_class;
};
+struct _GeeHazardPointer {
+ GeeHazardPointerNode* _node;
+};
+
+typedef enum {
+ GEE_HAZARD_POINTER_POLICY_DEFAULT,
+ GEE_HAZARD_POINTER_POLICY_THREAD_EXIT,
+ GEE_HAZARD_POINTER_POLICY_TRY_FREE,
+ GEE_HAZARD_POINTER_POLICY_FREE,
+ GEE_HAZARD_POINTER_POLICY_TRY_RELEASE,
+ GEE_HAZARD_POINTER_POLICY_RELEASE
+} GeeHazardPointerPolicy;
+
+typedef enum {
+ GEE_HAZARD_POINTER_RELEASE_POLICY_HELPER_THREAD,
+ GEE_HAZARD_POINTER_RELEASE_POLICY_MAIN_LOOP
+} GeeHazardPointerReleasePolicy;
+
+typedef void (*GeeHazardPointerDestroyNotify) (void* ptr, void* user_data);
+struct _GeeHazardPointerContext {
+ GeeHazardPointerContext* _parent;
+ GeeArrayList* _to_free;
+ GeeHazardPointerPolicy* _policy;
+};
+
+typedef GeeLazy* (*GeeUnfoldFunc) (void* user_data);
+typedef gpointer (*GeeLazyFunc) (void* user_data);
+struct _GeeLazy {
+ GTypeInstance parent_instance;
+ volatile int ref_count;
+ GeeLazyPrivate * priv;
+};
+
+struct _GeeLazyClass {
+ GTypeClass parent_class;
+ void (*finalize) (GeeLazy *self);
+};
+
struct _GeeLinkedList {
- GeeAbstractList parent_instance;
+ GeeAbstractBidirList parent_instance;
GeeLinkedListPrivate * priv;
};
struct _GeeLinkedListClass {
- GeeAbstractListClass parent_class;
+ GeeAbstractBidirListClass parent_class;
};
struct _GeeMapEntry {
@@ -674,6 +1260,7 @@ struct _GeeMapEntryClass {
gconstpointer (*get_key) (GeeMapEntry* self);
gconstpointer (*get_value) (GeeMapEntry* self);
void (*set_value) (GeeMapEntry* self, gconstpointer value);
+ gboolean (*get_read_only) (GeeMapEntry* self);
};
struct _GeePriorityQueue {
@@ -685,28 +1272,13 @@ struct _GeePriorityQueueClass {
GeeAbstractQueueClass parent_class;
};
-struct _GeeSortedSetIface {
- GTypeInterface parent_iface;
- gpointer (*first) (GeeSortedSet* self);
- gpointer (*last) (GeeSortedSet* self);
- GeeBidirIterator* (*bidir_iterator) (GeeSortedSet* self);
- GeeBidirIterator* (*iterator_at) (GeeSortedSet* self, gconstpointer element);
- gpointer (*lower) (GeeSortedSet* self, gconstpointer element);
- gpointer (*higher) (GeeSortedSet* self, gconstpointer element);
- gpointer (*floor) (GeeSortedSet* self, gconstpointer element);
- gpointer (*ceil) (GeeSortedSet* self, gconstpointer element);
- GeeSortedSet* (*head_set) (GeeSortedSet* self, gconstpointer before);
- GeeSortedSet* (*tail_set) (GeeSortedSet* self, gconstpointer after);
- GeeSortedSet* (*sub_set) (GeeSortedSet* self, gconstpointer from, gconstpointer to);
-};
-
struct _GeeTreeMap {
- GeeAbstractMap parent_instance;
+ GeeAbstractBidirSortedMap parent_instance;
GeeTreeMapPrivate * priv;
};
struct _GeeTreeMapClass {
- GeeAbstractMapClass parent_class;
+ GeeAbstractBidirSortedMapClass parent_class;
};
struct _GeeTreeMultiMap {
@@ -728,37 +1300,69 @@ struct _GeeTreeMultiSetClass {
};
struct _GeeTreeSet {
- GeeAbstractSet parent_instance;
+ GeeAbstractBidirSortedSet parent_instance;
GeeTreeSetPrivate * priv;
};
struct _GeeTreeSetClass {
- GeeAbstractSetClass parent_class;
+ GeeAbstractBidirSortedSetClass parent_class;
};
+GType gee_traversable_stream_get_type (void) G_GNUC_CONST;
+gpointer gee_lazy_ref (gpointer instance);
+void gee_lazy_unref (gpointer instance);
+GParamSpec* gee_param_spec_lazy (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
+void gee_value_set_lazy (GValue* value, gpointer v_object);
+void gee_value_take_lazy (GValue* value, gpointer v_object);
+gpointer gee_value_get_lazy (const GValue* value);
+GType gee_lazy_get_type (void) G_GNUC_CONST;
GType gee_iterator_get_type (void) G_GNUC_CONST;
+GType gee_traversable_get_type (void) G_GNUC_CONST;
GType gee_iterable_get_type (void) G_GNUC_CONST;
GType gee_collection_get_type (void) G_GNUC_CONST;
GType gee_abstract_collection_get_type (void) G_GNUC_CONST;
+GType gee_list_iterator_get_type (void) G_GNUC_CONST;
+GType gee_list_get_type (void) G_GNUC_CONST;
+GType gee_abstract_list_get_type (void) G_GNUC_CONST;
+GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_list_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_list_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_list_get_type (void) G_GNUC_CONST;
+GeeBidirListIterator* gee_abstract_bidir_list_bidir_list_iterator (GeeAbstractBidirList* self);
+GeeAbstractBidirList* gee_abstract_bidir_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirList* gee_abstract_bidir_list_get_read_only_view (GeeAbstractBidirList* self);
+GType gee_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_set_get_type (void) G_GNUC_CONST;
+GType gee_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_bidir_sorted_set_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_sorted_set_get_type (void) G_GNUC_CONST;
+GeeBidirIterator* gee_abstract_bidir_sorted_set_bidir_iterator (GeeAbstractBidirSortedSet* self);
+GeeAbstractBidirSortedSet* gee_abstract_bidir_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirSortedSet* gee_abstract_bidir_sorted_set_get_read_only_view (GeeAbstractBidirSortedSet* self);
+GType gee_map_iterator_get_type (void) G_GNUC_CONST;
+GType gee_map_entry_get_type (void) G_GNUC_CONST;
+GType gee_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_map_get_type (void) G_GNUC_CONST;
+GType gee_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_bidir_map_iterator_get_type (void) G_GNUC_CONST;
+GType gee_bidir_sorted_map_get_type (void) G_GNUC_CONST;
+GType gee_abstract_bidir_sorted_map_get_type (void) G_GNUC_CONST;
+GeeBidirMapIterator* gee_abstract_bidir_sorted_map_bidir_map_iterator (GeeAbstractBidirSortedMap* self);
+GeeAbstractBidirSortedMap* gee_abstract_bidir_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeBidirSortedMap* gee_abstract_bidir_sorted_map_get_read_only_view (GeeAbstractBidirSortedMap* self);
gboolean gee_abstract_collection_contains (GeeAbstractCollection* self, gconstpointer item);
gboolean gee_abstract_collection_add (GeeAbstractCollection* self, gconstpointer item);
gboolean gee_abstract_collection_remove (GeeAbstractCollection* self, gconstpointer item);
void gee_abstract_collection_clear (GeeAbstractCollection* self);
-gpointer* gee_abstract_collection_to_array (GeeAbstractCollection* self, int* result_length1);
-gboolean gee_abstract_collection_add_all (GeeAbstractCollection* self, GeeCollection* collection);
-gboolean gee_abstract_collection_contains_all (GeeAbstractCollection* self, GeeCollection* collection);
-gboolean gee_abstract_collection_remove_all (GeeAbstractCollection* self, GeeCollection* collection);
-gboolean gee_abstract_collection_retain_all (GeeAbstractCollection* self, GeeCollection* collection);
GeeIterator* gee_abstract_collection_iterator (GeeAbstractCollection* self);
+gboolean gee_abstract_collection_foreach (GeeAbstractCollection* self, GeeForallFunc f, void* f_target);
GeeAbstractCollection* gee_abstract_collection_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
gint gee_abstract_collection_get_size (GeeAbstractCollection* self);
-gboolean gee_abstract_collection_get_is_empty (GeeAbstractCollection* self);
+gboolean gee_abstract_collection_get_read_only (GeeAbstractCollection* self);
GeeCollection* gee_abstract_collection_get_read_only_view (GeeAbstractCollection* self);
-GType gee_bidir_iterator_get_type (void) G_GNUC_CONST;
-GType gee_list_iterator_get_type (void) G_GNUC_CONST;
-GType gee_list_get_type (void) G_GNUC_CONST;
-GType gee_abstract_list_get_type (void) G_GNUC_CONST;
GeeListIterator* gee_abstract_list_list_iterator (GeeAbstractList* self);
gpointer gee_abstract_list_get (GeeAbstractList* self, gint index);
void gee_abstract_list_set (GeeAbstractList* self, gint index, gconstpointer item);
@@ -766,16 +1370,8 @@ gint gee_abstract_list_index_of (GeeAbstractList* self, gconstpointer item);
void gee_abstract_list_insert (GeeAbstractList* self, gint index, gconstpointer item);
gpointer gee_abstract_list_remove_at (GeeAbstractList* self, gint index);
GeeList* gee_abstract_list_slice (GeeAbstractList* self, gint start, gint stop);
-gpointer gee_abstract_list_first (GeeAbstractList* self);
-gpointer gee_abstract_list_last (GeeAbstractList* self);
-void gee_abstract_list_insert_all (GeeAbstractList* self, gint index, GeeCollection* collection);
GeeAbstractList* gee_abstract_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
GeeList* gee_abstract_list_get_read_only_view (GeeAbstractList* self);
-GType gee_map_iterator_get_type (void) G_GNUC_CONST;
-GType gee_set_get_type (void) G_GNUC_CONST;
-GType gee_map_entry_get_type (void) G_GNUC_CONST;
-GType gee_map_get_type (void) G_GNUC_CONST;
-GType gee_abstract_map_get_type (void) G_GNUC_CONST;
gboolean gee_abstract_map_has_key (GeeAbstractMap* self, gconstpointer key);
gboolean gee_abstract_map_has (GeeAbstractMap* self, gconstpointer key, gconstpointer value);
gpointer gee_abstract_map_get (GeeAbstractMap* self, gconstpointer key);
@@ -783,12 +1379,11 @@ void gee_abstract_map_set (GeeAbstractMap* self, gconstpointer key, gconstpointe
gboolean gee_abstract_map_unset (GeeAbstractMap* self, gconstpointer key, gpointer* value);
GeeMapIterator* gee_abstract_map_map_iterator (GeeAbstractMap* self);
void gee_abstract_map_clear (GeeAbstractMap* self);
-void gee_abstract_map_set_all (GeeAbstractMap* self, GeeMap* map);
-gboolean gee_abstract_map_unset_all (GeeAbstractMap* self, GeeMap* map);
-gboolean gee_abstract_map_has_all (GeeAbstractMap* self, GeeMap* map);
+gboolean gee_abstract_map_foreach (GeeAbstractMap* self, GeeForallFunc f, void* f_target);
+GeeIterator* gee_abstract_map_stream (GeeAbstractMap* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
GeeAbstractMap* gee_abstract_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
gint gee_abstract_map_get_size (GeeAbstractMap* self);
-gboolean gee_abstract_map_get_is_empty (GeeAbstractMap* self);
+gboolean gee_abstract_map_get_read_only (GeeAbstractMap* self);
GeeSet* gee_abstract_map_get_keys (GeeAbstractMap* self);
GeeCollection* gee_abstract_map_get_values (GeeAbstractMap* self);
GeeSet* gee_abstract_map_get_entries (GeeAbstractMap* self);
@@ -799,30 +1394,69 @@ GType gee_abstract_multi_map_get_type (void) G_GNUC_CONST;
GeeAbstractMultiMap* gee_abstract_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeMap* storage_map);
GeeCollection* gee_abstract_multi_map_create_value_storage (GeeAbstractMultiMap* self);
GeeMultiSet* gee_abstract_multi_map_create_multi_key_set (GeeAbstractMultiMap* self);
-GEqualFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self);
+GeeEqualDataFunc gee_abstract_multi_map_get_value_equal_func (GeeAbstractMultiMap* self, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GeeMultiMap* gee_abstract_multi_map_get_read_only_view (GeeAbstractMultiMap* self);
GType gee_abstract_multi_set_get_type (void) G_GNUC_CONST;
GeeAbstractMultiSet* gee_abstract_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeMap* storage_map);
+GeeMultiSet* gee_abstract_multi_set_get_read_only_view (GeeAbstractMultiSet* self);
GType gee_queue_get_type (void) G_GNUC_CONST;
GType gee_abstract_queue_get_type (void) G_GNUC_CONST;
-gboolean gee_abstract_queue_offer (GeeAbstractQueue* self, gconstpointer element);
gpointer gee_abstract_queue_peek (GeeAbstractQueue* self);
gpointer gee_abstract_queue_poll (GeeAbstractQueue* self);
-gint gee_abstract_queue_drain (GeeAbstractQueue* self, GeeCollection* recipient, gint amount);
GeeAbstractQueue* gee_abstract_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
gint gee_abstract_queue_get_capacity (GeeAbstractQueue* self);
gint gee_abstract_queue_get_remaining_capacity (GeeAbstractQueue* self);
gboolean gee_abstract_queue_get_is_full (GeeAbstractQueue* self);
-GType gee_abstract_set_get_type (void) G_GNUC_CONST;
GeeAbstractSet* gee_abstract_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
GeeSet* gee_abstract_set_get_read_only_view (GeeAbstractSet* self);
+GeeSortedMap* gee_abstract_sorted_map_head_map (GeeAbstractSortedMap* self, gconstpointer before);
+GeeSortedMap* gee_abstract_sorted_map_tail_map (GeeAbstractSortedMap* self, gconstpointer after);
+GeeSortedMap* gee_abstract_sorted_map_sub_map (GeeAbstractSortedMap* self, gconstpointer before, gconstpointer after);
+GeeAbstractSortedMap* gee_abstract_sorted_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeSortedSet* gee_abstract_sorted_map_get_ascending_keys (GeeAbstractSortedMap* self);
+GeeSortedSet* gee_abstract_sorted_map_get_ascending_entries (GeeAbstractSortedMap* self);
+gpointer gee_abstract_sorted_set_first (GeeAbstractSortedSet* self);
+gpointer gee_abstract_sorted_set_last (GeeAbstractSortedSet* self);
+GeeIterator* gee_abstract_sorted_set_iterator_at (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_lower (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_higher (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_floor (GeeAbstractSortedSet* self, gconstpointer element);
+gpointer gee_abstract_sorted_set_ceil (GeeAbstractSortedSet* self, gconstpointer element);
+GeeSortedSet* gee_abstract_sorted_set_head_set (GeeAbstractSortedSet* self, gconstpointer before);
+GeeSortedSet* gee_abstract_sorted_set_tail_set (GeeAbstractSortedSet* self, gconstpointer after);
+GeeSortedSet* gee_abstract_sorted_set_sub_set (GeeAbstractSortedSet* self, gconstpointer from, gconstpointer to);
+GeeAbstractSortedSet* gee_abstract_sorted_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSortedSet* gee_abstract_sorted_set_get_read_only_view (GeeAbstractSortedSet* self);
GType gee_array_list_get_type (void) G_GNUC_CONST;
-GeeArrayList* gee_array_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GEqualFunc equal_func);
-GeeArrayList* gee_array_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GEqualFunc equal_func);
-void gee_array_list_sort_with_data (GeeArrayList* self, GCompareDataFunc compare, void* compare_target);
-GEqualFunc gee_array_list_get_equal_func (GeeArrayList* self);
+GeeArrayList* gee_array_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_new_wrap (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* items, int items_length1, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayList* gee_array_list_construct_wrap (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gpointer* items, int items_length1, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+gboolean gee_array_list_add_all (GeeArrayList* self, GeeCollection* collection);
+GeeEqualDataFunc gee_array_list_get_equal_func (GeeArrayList* self, gpointer* result_target);
+GType gee_deque_get_type (void) G_GNUC_CONST;
+GType gee_array_queue_get_type (void) G_GNUC_CONST;
+GeeArrayQueue* gee_array_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeArrayQueue* gee_array_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeEqualDataFunc gee_array_queue_get_equal_func (GeeArrayQueue* self, gpointer* result_target);
+gboolean gee_array_queue_get_is_empty (GeeArrayQueue* self);
gboolean gee_bidir_iterator_previous (GeeBidirIterator* self);
gboolean gee_bidir_iterator_has_previous (GeeBidirIterator* self);
+gboolean gee_bidir_iterator_first (GeeBidirIterator* self);
gboolean gee_bidir_iterator_last (GeeBidirIterator* self);
+GeeBidirListIterator* gee_bidir_list_bidir_list_iterator (GeeBidirList* self);
+GeeBidirList* gee_bidir_list_get_read_only_view (GeeBidirList* self);
+void gee_bidir_list_iterator_insert (GeeBidirListIterator* self, gconstpointer item);
+gboolean gee_bidir_map_iterator_previous (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_has_previous (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_first (GeeBidirMapIterator* self);
+gboolean gee_bidir_map_iterator_last (GeeBidirMapIterator* self);
+GeeBidirIterator* gee_bidir_sorted_set_bidir_iterator (GeeBidirSortedSet* self);
+GeeBidirSortedSet* gee_bidir_sorted_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeBidirSortedSet* gee_bidir_sorted_set_get_read_only_view (GeeBidirSortedSet* self);
+GeeBidirMapIterator* gee_bidir_sorted_map_bidir_map_iterator (GeeBidirSortedMap* self);
+GeeBidirSortedMap* gee_bidir_sorted_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeBidirSortedMap* gee_bidir_sorted_map_get_read_only_view (GeeBidirSortedMap* self);
gboolean gee_collection_contains (GeeCollection* self, gconstpointer item);
gboolean gee_collection_add (GeeCollection* self, gconstpointer item);
gboolean gee_collection_remove (GeeCollection* self, gconstpointer item);
@@ -832,13 +1466,25 @@ gboolean gee_collection_contains_all (GeeCollection* self, GeeCollection* collec
gboolean gee_collection_remove_all (GeeCollection* self, GeeCollection* collection);
gboolean gee_collection_retain_all (GeeCollection* self, GeeCollection* collection);
gpointer* gee_collection_to_array (GeeCollection* self, int* result_length1);
+gboolean gee_collection_add_all_array (GeeCollection* self, gpointer* array, int array_length1);
+gboolean gee_collection_contains_all_array (GeeCollection* self, gpointer* array, int array_length1);
+gboolean gee_collection_remove_all_array (GeeCollection* self, gpointer* array, int array_length1);
GeeCollection* gee_collection_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
gint gee_collection_get_size (GeeCollection* self);
gboolean gee_collection_get_is_empty (GeeCollection* self);
+gboolean gee_collection_get_read_only (GeeCollection* self);
GeeCollection* gee_collection_get_read_only_view (GeeCollection* self);
GType gee_comparable_get_type (void) G_GNUC_CONST;
gint gee_comparable_compare_to (GeeComparable* self, gconstpointer object);
-GType gee_deque_get_type (void) G_GNUC_CONST;
+GType gee_concurrent_list_get_type (void) G_GNUC_CONST;
+GeeConcurrentList* gee_concurrent_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeConcurrentList* gee_concurrent_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeEqualDataFunc gee_concurrent_list_get_equal_func (GeeConcurrentList* self, gpointer* result_target);
+gboolean gee_concurrent_list_get_is_empty (GeeConcurrentList* self);
+GType gee_concurrent_set_get_type (void) G_GNUC_CONST;
+GType gee_concurrent_set_range_type_get_type (void) G_GNUC_CONST;
+GeeConcurrentSet* gee_concurrent_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeConcurrentSet* gee_concurrent_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
gboolean gee_deque_offer_head (GeeDeque* self, gconstpointer element);
gpointer gee_deque_peek_head (GeeDeque* self);
gpointer gee_deque_poll_head (GeeDeque* self);
@@ -847,44 +1493,86 @@ gboolean gee_deque_offer_tail (GeeDeque* self, gconstpointer element);
gpointer gee_deque_peek_tail (GeeDeque* self);
gpointer gee_deque_poll_tail (GeeDeque* self);
gint gee_deque_drain_tail (GeeDeque* self, GeeCollection* recipient, gint amount);
-GEqualFunc gee_functions_get_equal_func_for (GType t);
-GHashFunc gee_functions_get_hash_func_for (GType t);
-GCompareFunc gee_functions_get_compare_func_for (GType t);
-gint gee_direct_compare (void* _val1, void* _val2);
+GeeEqualDataFunc gee_functions_get_equal_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GeeHashDataFunc gee_functions_get_hash_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GCompareDataFunc gee_functions_get_compare_func_for (GType t, void** result_target, GDestroyNotify* result_target_destroy_notify);
+GType gee_hashable_get_type (void) G_GNUC_CONST;
+guint gee_hashable_hash (GeeHashable* self);
+gboolean gee_hashable_equal_to (GeeHashable* self, gconstpointer object);
GType gee_hash_map_get_type (void) G_GNUC_CONST;
-GeeHashMap* gee_hash_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GHashFunc key_hash_func, GEqualFunc key_equal_func, GEqualFunc value_equal_func);
-GeeHashMap* gee_hash_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GHashFunc key_hash_func, GEqualFunc key_equal_func, GEqualFunc value_equal_func);
-GHashFunc gee_hash_map_get_key_hash_func (GeeHashMap* self);
-GEqualFunc gee_hash_map_get_key_equal_func (GeeHashMap* self);
-GEqualFunc gee_hash_map_get_value_equal_func (GeeHashMap* self);
+GeeHashMap* gee_hash_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashMap* gee_hash_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_map_get_key_hash_func (GeeHashMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_map_get_key_equal_func (GeeHashMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_map_get_value_equal_func (GeeHashMap* self, gpointer* result_target);
GType gee_hash_multi_map_get_type (void) G_GNUC_CONST;
-GeeHashMultiMap* gee_hash_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GHashFunc key_hash_func, GEqualFunc key_equal_func, GHashFunc value_hash_func, GEqualFunc value_equal_func);
-GeeHashMultiMap* gee_hash_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GHashFunc key_hash_func, GEqualFunc key_equal_func, GHashFunc value_hash_func, GEqualFunc value_equal_func);
-GHashFunc gee_hash_multi_map_get_key_hash_func (GeeHashMultiMap* self);
-GEqualFunc gee_hash_multi_map_get_key_equal_func (GeeHashMultiMap* self);
-GHashFunc gee_hash_multi_map_get_value_hash_func (GeeHashMultiMap* self);
-GEqualFunc gee_hash_multi_map_get_value_equal_func (GeeHashMultiMap* self);
+GeeHashMultiMap* gee_hash_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeHashDataFunc value_hash_func, void* value_hash_func_target, GDestroyNotify value_hash_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashMultiMap* gee_hash_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GeeHashDataFunc key_hash_func, void* key_hash_func_target, GDestroyNotify key_hash_func_target_destroy_notify, GeeEqualDataFunc key_equal_func, void* key_equal_func_target, GDestroyNotify key_equal_func_target_destroy_notify, GeeHashDataFunc value_hash_func, void* value_hash_func_target, GDestroyNotify value_hash_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_multi_map_get_key_hash_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_map_get_key_equal_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeHashDataFunc gee_hash_multi_map_get_value_hash_func (GeeHashMultiMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_map_get_value_equal_func (GeeHashMultiMap* self, gpointer* result_target);
GType gee_hash_multi_set_get_type (void) G_GNUC_CONST;
-GeeHashMultiSet* gee_hash_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GHashFunc hash_func, GEqualFunc equal_func);
-GeeHashMultiSet* gee_hash_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GHashFunc hash_func, GEqualFunc equal_func);
-GHashFunc gee_hash_multi_set_get_hash_func (GeeHashMultiSet* self);
-GEqualFunc gee_hash_multi_set_get_equal_func (GeeHashMultiSet* self);
+GeeHashMultiSet* gee_hash_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GeeEqualDataFunc equal_func, void* equal_func_target);
+GeeHashMultiSet* gee_hash_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GeeEqualDataFunc equal_func, void* equal_func_target);
+GeeHashDataFunc gee_hash_multi_set_get_hash_func (GeeHashMultiSet* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_multi_set_get_equal_func (GeeHashMultiSet* self, gpointer* result_target);
GType gee_hash_set_get_type (void) G_GNUC_CONST;
-GeeHashSet* gee_hash_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GHashFunc hash_func, GEqualFunc equal_func);
-GeeHashSet* gee_hash_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GHashFunc hash_func, GEqualFunc equal_func);
-GHashFunc gee_hash_set_get_hash_func (GeeHashSet* self);
-GEqualFunc gee_hash_set_get_equal_func (GeeHashSet* self);
+GeeHashSet* gee_hash_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeHashSet* gee_hash_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeHashDataFunc hash_func, void* hash_func_target, GDestroyNotify hash_func_target_destroy_notify, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeHashDataFunc gee_hash_set_get_hash_func (GeeHashSet* self, gpointer* result_target);
+GeeEqualDataFunc gee_hash_set_get_equal_func (GeeHashSet* self, gpointer* result_target);
+void gee_hazard_pointer_free (GeeHazardPointer* self);
+void gee_hazard_pointer_node_free (GeeHazardPointerNode* self);
+GType gee_hazard_pointer_policy_get_type (void) G_GNUC_CONST;
+gboolean gee_hazard_pointer_policy_is_concrete (GeeHazardPointerPolicy self);
+gboolean gee_hazard_pointer_policy_is_blocking (GeeHazardPointerPolicy self);
+gboolean gee_hazard_pointer_policy_is_safe (GeeHazardPointerPolicy self);
+GeeHazardPointerPolicy gee_hazard_pointer_policy_to_concrete (GeeHazardPointerPolicy self);
+GType gee_hazard_pointer_release_policy_get_type (void) G_GNUC_CONST;
+GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr);
+GeeHazardPointer* gee_hazard_pointer_new (gconstpointer* ptr);
+GeeHazardPointer* gee_hazard_pointer_get_hazard_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gsize mask, gsize* mask_out);
+gpointer gee_hazard_pointer_get_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gsize mask, gsize* mask_out);
+GeeHazardPointer* gee_hazard_pointer_exchange_hazard_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask, gsize* old_mask);
+void gee_hazard_pointer_set_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask);
+gpointer gee_hazard_pointer_exchange_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gpointer new_ptr, gsize mask, gsize new_mask, gsize* old_mask);
+gboolean gee_hazard_pointer_compare_and_exchange_pointer (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer** aptr, gconstpointer old_ptr, gpointer _new_ptr, gsize mask, gsize old_mask, gsize new_mask);
+gconstpointer gee_hazard_pointer_get (GeeHazardPointer* self, gboolean other_thread);
+void gee_hazard_pointer_release (GeeHazardPointer* self, GeeHazardPointerDestroyNotify notify, void* notify_target, GDestroyNotify notify_target_destroy_notify);
+void gee_hazard_pointer_set_default_policy (GeeHazardPointerPolicy policy);
+void gee_hazard_pointer_set_thread_exit_policy (GeeHazardPointerPolicy policy);
+gboolean gee_hazard_pointer_set_release_policy (GeeHazardPointerReleasePolicy policy);
+void gee_hazard_pointer_context_free (GeeHazardPointerContext* self);
+void gee_hazard_pointer_free_node_free (GeeHazardPointerFreeNode* self);
+GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy);
+GeeHazardPointerContext* gee_hazard_pointer_context_new (GeeHazardPointerPolicy* policy);
+void gee_hazard_pointer_context_try_free (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_free_all (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_try_release (GeeHazardPointerContext* self);
+void gee_hazard_pointer_context_release (GeeHazardPointerContext* self);
GeeIterator* gee_iterable_iterator (GeeIterable* self);
-GType gee_iterable_get_element_type (GeeIterable* self);
gboolean gee_iterator_next (GeeIterator* self);
gboolean gee_iterator_has_next (GeeIterator* self);
-gboolean gee_iterator_first (GeeIterator* self);
gpointer gee_iterator_get (GeeIterator* self);
void gee_iterator_remove (GeeIterator* self);
+GeeIterator* gee_iterator_unfold (GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeUnfoldFunc f, void* f_target, GDestroyNotify f_target_destroy_notify, GeeLazy* current);
+GeeIterator* gee_iterator_concat (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeIterator* iters);
+gboolean gee_iterator_get_valid (GeeIterator* self);
+gboolean gee_iterator_get_read_only (GeeIterator* self);
+GeeLazy* gee_lazy_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazyFunc func, void* func_target, GDestroyNotify func_target_destroy_notify);
+GeeLazy* gee_lazy_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeLazyFunc func, void* func_target, GDestroyNotify func_target_destroy_notify);
+GeeLazy* gee_lazy_new_from_value (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item);
+GeeLazy* gee_lazy_construct_from_value (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, gconstpointer item);
+void gee_lazy_eval (GeeLazy* self);
+gpointer gee_lazy_get (GeeLazy* self);
+gconstpointer gee_lazy_get_value (GeeLazy* self);
GType gee_linked_list_get_type (void) G_GNUC_CONST;
-GeeLinkedList* gee_linked_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GEqualFunc equal_func);
-GeeLinkedList* gee_linked_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GEqualFunc equal_func);
-GEqualFunc gee_linked_list_get_equal_func (GeeLinkedList* self);
+GeeLinkedList* gee_linked_list_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+GeeLinkedList* gee_linked_list_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GeeEqualDataFunc equal_func, void* equal_func_target, GDestroyNotify equal_func_target_destroy_notify);
+gpointer gee_linked_list_first (GeeLinkedList* self);
+gpointer gee_linked_list_last (GeeLinkedList* self);
+GeeEqualDataFunc gee_linked_list_get_equal_func (GeeLinkedList* self, gpointer* result_target);
GeeListIterator* gee_list_list_iterator (GeeList* self);
gpointer gee_list_get (GeeList* self, gint index);
void gee_list_set (GeeList* self, gint index, gconstpointer item);
@@ -895,11 +1583,10 @@ GeeList* gee_list_slice (GeeList* self, gint start, gint stop);
gpointer gee_list_first (GeeList* self);
gpointer gee_list_last (GeeList* self);
void gee_list_insert_all (GeeList* self, gint index, GeeCollection* collection);
-void gee_list_sort (GeeList* self, GCompareFunc compare_func);
+void gee_list_sort (GeeList* self, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
GeeList* gee_list_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
GeeList* gee_list_get_read_only_view (GeeList* self);
void gee_list_iterator_set (GeeListIterator* self, gconstpointer item);
-void gee_list_iterator_insert (GeeListIterator* self, gconstpointer item);
void gee_list_iterator_add (GeeListIterator* self, gconstpointer item);
gint gee_list_iterator_index (GeeListIterator* self);
gboolean gee_map_has_key (GeeMap* self, gconstpointer key);
@@ -919,6 +1606,7 @@ gboolean gee_map_contains_all (GeeMap* self, GeeMap* map) G_GNUC_DEPRECATED;
GeeMap* gee_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
gint gee_map_get_size (GeeMap* self);
gboolean gee_map_get_is_empty (GeeMap* self);
+gboolean gee_map_get_read_only (GeeMap* self);
GeeSet* gee_map_get_keys (GeeMap* self);
GeeCollection* gee_map_get_values (GeeMap* self);
GeeSet* gee_map_get_entries (GeeMap* self);
@@ -929,13 +1617,18 @@ GeeMapEntry* gee_map_entry_construct (GType object_type, GType k_type, GBoxedCop
gconstpointer gee_map_entry_get_key (GeeMapEntry* self);
gconstpointer gee_map_entry_get_value (GeeMapEntry* self);
void gee_map_entry_set_value (GeeMapEntry* self, gconstpointer value);
+gboolean gee_map_entry_get_read_only (GeeMapEntry* self);
gboolean gee_map_iterator_next (GeeMapIterator* self);
gboolean gee_map_iterator_has_next (GeeMapIterator* self);
-gboolean gee_map_iterator_first (GeeMapIterator* self);
gpointer gee_map_iterator_get_key (GeeMapIterator* self);
gpointer gee_map_iterator_get_value (GeeMapIterator* self);
void gee_map_iterator_set_value (GeeMapIterator* self, gconstpointer value);
void gee_map_iterator_unset (GeeMapIterator* self);
+gpointer gee_map_iterator_fold (GeeMapIterator* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldMapFunc f, void* f_target, gpointer seed);
+gboolean gee_map_iterator_foreach (GeeMapIterator* self, GeeForallMapFunc f, void* f_target);
+gboolean gee_map_iterator_get_valid (GeeMapIterator* self);
+gboolean gee_map_iterator_get_mutable (GeeMapIterator* self);
+gboolean gee_map_iterator_get_read_only (GeeMapIterator* self);
GeeSet* gee_multi_map_get_keys (GeeMultiMap* self);
GeeMultiSet* gee_multi_map_get_all_keys (GeeMultiMap* self);
GeeCollection* gee_multi_map_get_values (GeeMultiMap* self);
@@ -945,12 +1638,21 @@ void gee_multi_map_set (GeeMultiMap* self, gconstpointer key, gconstpointer valu
gboolean gee_multi_map_remove (GeeMultiMap* self, gconstpointer key, gconstpointer value);
gboolean gee_multi_map_remove_all (GeeMultiMap* self, gconstpointer key);
void gee_multi_map_clear (GeeMultiMap* self);
+GeeMapIterator* gee_multi_map_map_iterator (GeeMultiMap* self);
gint gee_multi_map_get_size (GeeMultiMap* self);
+gboolean gee_multi_map_get_read_only (GeeMultiMap* self);
+GType gee_multi_map_get_key_type (GeeMultiMap* self);
+GType gee_multi_map_get_value_type (GeeMultiMap* self);
+GeeMultiMap* gee_multi_map_get_read_only_view (GeeMultiMap* self);
gint gee_multi_set_count (GeeMultiSet* self, gconstpointer item);
+GeeSet* gee_multi_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeMultiSet* gee_multi_set_get_read_only_view (GeeMultiSet* self);
GType gee_priority_queue_get_type (void) G_GNUC_CONST;
-GeePriorityQueue* gee_priority_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GeePriorityQueue* gee_priority_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GCompareFunc gee_priority_queue_get_compare_func (GeePriorityQueue* self);
+GeePriorityQueue* gee_priority_queue_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeePriorityQueue* gee_priority_queue_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+gboolean gee_priority_queue_offer (GeePriorityQueue* self, gconstpointer element);
+gint gee_priority_queue_drain (GeePriorityQueue* self, GeeCollection* recipient, gint amount);
+GCompareDataFunc gee_priority_queue_get_compare_func (GeePriorityQueue* self, gpointer* result_target);
gboolean gee_queue_offer (GeeQueue* self, gconstpointer element);
gpointer gee_queue_peek (GeeQueue* self);
gpointer gee_queue_poll (GeeQueue* self);
@@ -961,11 +1663,16 @@ gint gee_queue_get_remaining_capacity (GeeQueue* self);
gboolean gee_queue_get_is_full (GeeQueue* self);
GeeSet* gee_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
GeeSet* gee_set_get_read_only_view (GeeSet* self);
-GType gee_sorted_set_get_type (void) G_GNUC_CONST;
+GeeSortedMap* gee_sorted_map_head_map (GeeSortedMap* self, gconstpointer before);
+GeeSortedMap* gee_sorted_map_tail_map (GeeSortedMap* self, gconstpointer after);
+GeeSortedMap* gee_sorted_map_sub_map (GeeSortedMap* self, gconstpointer before, gconstpointer after);
+GeeMap* gee_sorted_map_empty (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func);
+GeeSortedSet* gee_sorted_map_get_ascending_keys (GeeSortedMap* self);
+GeeSortedSet* gee_sorted_map_get_ascending_entries (GeeSortedMap* self);
+GeeSortedMap* gee_sorted_map_get_read_only_view (GeeSortedMap* self);
gpointer gee_sorted_set_first (GeeSortedSet* self);
gpointer gee_sorted_set_last (GeeSortedSet* self);
-GeeBidirIterator* gee_sorted_set_bidir_iterator (GeeSortedSet* self);
-GeeBidirIterator* gee_sorted_set_iterator_at (GeeSortedSet* self, gconstpointer element);
+GeeIterator* gee_sorted_set_iterator_at (GeeSortedSet* self, gconstpointer element);
gpointer gee_sorted_set_lower (GeeSortedSet* self, gconstpointer element);
gpointer gee_sorted_set_higher (GeeSortedSet* self, gconstpointer element);
gpointer gee_sorted_set_floor (GeeSortedSet* self, gconstpointer element);
@@ -973,24 +1680,34 @@ gpointer gee_sorted_set_ceil (GeeSortedSet* self, gconstpointer element);
GeeSortedSet* gee_sorted_set_head_set (GeeSortedSet* self, gconstpointer before);
GeeSortedSet* gee_sorted_set_tail_set (GeeSortedSet* self, gconstpointer after);
GeeSortedSet* gee_sorted_set_sub_set (GeeSortedSet* self, gconstpointer from, gconstpointer to);
+GeeSortedSet* gee_sorted_set_empty (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func);
+GeeSortedSet* gee_sorted_set_get_read_only_view (GeeSortedSet* self);
+gboolean gee_traversable_foreach (GeeTraversable* self, GeeForallFunc f, void* f_target);
+GeeIterator* gee_traversable_stream (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeStreamFunc f, void* f_target, GDestroyNotify f_target_destroy_notify);
+gpointer gee_traversable_fold (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+GeeIterator* gee_traversable_map (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeMapFunc f, void* f_target);
+GeeIterator* gee_traversable_scan (GeeTraversable* self, GType a_type, GBoxedCopyFunc a_dup_func, GDestroyNotify a_destroy_func, GeeFoldFunc f, void* f_target, gpointer seed);
+GeeIterator* gee_traversable_filter (GeeTraversable* self, GeePredicate pred, void* pred_target, GDestroyNotify pred_target_destroy_notify);
+GeeIterator* gee_traversable_chop (GeeTraversable* self, gint offset, gint length);
+GType gee_traversable_get_element_type (GeeTraversable* self);
GType gee_tree_map_get_type (void) G_GNUC_CONST;
-GeeTreeMap* gee_tree_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareFunc key_compare_func, GEqualFunc value_equal_func);
-GeeTreeMap* gee_tree_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareFunc key_compare_func, GEqualFunc value_equal_func);
-GCompareFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self);
-GEqualFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self);
+GeeTreeMap* gee_tree_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GeeTreeMap* gee_tree_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GeeEqualDataFunc value_equal_func, void* value_equal_func_target, GDestroyNotify value_equal_func_target_destroy_notify);
+GCompareDataFunc gee_tree_map_get_key_compare_func (GeeTreeMap* self, gpointer* result_target);
+GeeEqualDataFunc gee_tree_map_get_value_equal_func (GeeTreeMap* self, gpointer* result_target);
GType gee_tree_multi_map_get_type (void) G_GNUC_CONST;
-GeeTreeMultiMap* gee_tree_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareFunc key_compare_func, GCompareFunc value_compare_func);
-GeeTreeMultiMap* gee_tree_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareFunc key_compare_func, GCompareFunc value_compare_func);
-GCompareFunc gee_tree_multi_map_get_key_compare_func (GeeTreeMultiMap* self);
-GCompareFunc gee_tree_multi_map_get_value_compare_func (GeeTreeMultiMap* self);
+GeeTreeMultiMap* gee_tree_multi_map_new (GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GCompareDataFunc value_compare_func, void* value_compare_func_target, GDestroyNotify value_compare_func_target_destroy_notify);
+GeeTreeMultiMap* gee_tree_multi_map_construct (GType object_type, GType k_type, GBoxedCopyFunc k_dup_func, GDestroyNotify k_destroy_func, GType v_type, GBoxedCopyFunc v_dup_func, GDestroyNotify v_destroy_func, GCompareDataFunc key_compare_func, void* key_compare_func_target, GDestroyNotify key_compare_func_target_destroy_notify, GCompareDataFunc value_compare_func, void* value_compare_func_target, GDestroyNotify value_compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_multi_map_get_key_compare_func (GeeTreeMultiMap* self, gpointer* result_target);
+GCompareDataFunc gee_tree_multi_map_get_value_compare_func (GeeTreeMultiMap* self, gpointer* result_target);
GType gee_tree_multi_set_get_type (void) G_GNUC_CONST;
-GeeTreeMultiSet* gee_tree_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GeeTreeMultiSet* gee_tree_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GCompareFunc gee_tree_multi_set_get_compare_func (GeeTreeMultiSet* self);
+GeeTreeMultiSet* gee_tree_multi_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeTreeMultiSet* gee_tree_multi_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_multi_set_get_compare_func (GeeTreeMultiSet* self, gpointer* result_target);
GType gee_tree_set_get_type (void) G_GNUC_CONST;
-GeeTreeSet* gee_tree_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GeeTreeSet* gee_tree_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareFunc compare_func);
-GCompareFunc gee_tree_set_get_compare_func (GeeTreeSet* self);
+GeeTreeSet* gee_tree_set_new (GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GeeTreeSet* gee_tree_set_construct (GType object_type, GType g_type, GBoxedCopyFunc g_dup_func, GDestroyNotify g_destroy_func, GCompareDataFunc compare_func, void* compare_func_target, GDestroyNotify compare_func_target_destroy_notify);
+GCompareDataFunc gee_tree_set_get_compare_func (GeeTreeSet* self, gpointer* result_target);
G_END_DECLS