11 typedef gint (*SfiCompareFunc) (gconstpointer value1,
14 gint sfi_pointer_cmp (gconstpointer value1,
20 typedef gpointer (*SfiRingDataFunc) (gpointer data,
43 gint sfi_ring_position (
const SfiRing *head,
45 gint sfi_ring_index (
const SfiRing *head,
49 gpointer sfi_ring_nth_data (
const SfiRing *head,
57 guint sfi_ring_length (
const SfiRing *head);
58 gint sfi_ring_cmp_length (
const SfiRing *head,
71 gpointer sfi_ring_pop_head (
SfiRing **head);
72 gpointer sfi_ring_pop_tail (
SfiRing **head);
73 #define sfi_ring_push_head sfi_ring_prepend
74 #define sfi_ring_push_tail sfi_ring_append
75 void sfi_ring_free (
SfiRing *head);
76 void sfi_ring_free_deep (
SfiRing *head,
77 GDestroyNotify data_destroy);
79 SfiRing* sfi_ring_from_list (GList *list);
80 SfiRing* sfi_ring_from_list_and_free (GList *list);
81 SfiRing* sfi_ring_from_slist (GSList *slist);
82 SfiRing* sfi_ring_from_slist_and_free (GSList *slist);
83 #define sfi_ring_tail(head) ((head) ? (head)->prev : NULL)
84 #define sfi_ring_walk(node,head_bound) ((node)->next != (head_bound) ? (node)->next : NULL)
85 #define sfi_ring_next(node,head_bound) sfi_ring_walk (node, head_bound)
90 gpointer insertion_data,
106 GDestroyNotify data_destroy);
108 const SfiRing *new_ring_order);
111 SfiRingDataFunc copy,
135 gboolean sfi_ring_includes (
const SfiRing *sorted_super_set,
gpointer sfi_ring_min(const SfiRing *head, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1132
SfiRing * sfi_ring_min_node(const SfiRing *head, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1082
SfiRing * sfi_ring_max_node(const SfiRing *head, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1107
SfiRing * sfi_ring_symmetric_difference(const SfiRing *sorted_set1, const SfiRing *sorted_set2, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:860
SfiRing * sfi_ring_difference(const SfiRing *sorted_set1, const SfiRing *sorted_set2, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:819
gboolean sfi_ring_equals(const SfiRing *sorted_set1, const SfiRing *sorted_set2, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1022
SfiRing * sfi_ring_union(const SfiRing *sorted_set1, const SfiRing *sorted_set2, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:734
Definition: sfiring.hh:23
SfiRing * sfi_ring_reorder(SfiRing *unordered_ring, const SfiRing *new_ring_order)
Definition: sfiring.cc:933
SfiRing * sfi_ring_split(SfiRing *head1, SfiRing *head2)
Definition: sfiring.cc:243
gboolean sfi_ring_mismatch(SfiRing **sorted_ring1_p, SfiRing **sorted_ring2_p, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1050
SfiRing * sfi_ring_intersection(const SfiRing *sorted_set1, const SfiRing *sorted_set2, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:781
gpointer sfi_ring_max(const SfiRing *head, SfiCompareFunc cmp, gpointer data)
Definition: sfiring.cc:1150