Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 
 
 

129 строки
7.2 KiB

  1. /* GLIB - Library of useful routines for C programming
  2. * Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007
  3. * Soeren Sandmann (sandmann@daimi.au.dk)
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General Public
  16. * License along with this library; if not, write to the
  17. * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  18. * Boston, MA 02111-1307, USA.
  19. */
  20. #if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
  21. #error "Only <glib.h> can be included directly."
  22. #endif
  23. #ifndef __G_SEQUENCE_H__
  24. #define __G_SEQUENCE_H__
  25. #include <glib/gtypes.h>
  26. G_BEGIN_DECLS
  27. typedef struct _GSequence GSequence;
  28. typedef struct _GSequenceNode GSequenceIter;
  29. typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a,
  30. GSequenceIter *b,
  31. gpointer data);
  32. /* GSequence */
  33. GSequence * g_sequence_new (GDestroyNotify data_destroy);
  34. void g_sequence_free (GSequence *seq);
  35. gint g_sequence_get_length (GSequence *seq);
  36. void g_sequence_foreach (GSequence *seq,
  37. GFunc func,
  38. gpointer user_data);
  39. void g_sequence_foreach_range (GSequenceIter *begin,
  40. GSequenceIter *end,
  41. GFunc func,
  42. gpointer user_data);
  43. void g_sequence_sort (GSequence *seq,
  44. GCompareDataFunc cmp_func,
  45. gpointer cmp_data);
  46. void g_sequence_sort_iter (GSequence *seq,
  47. GSequenceIterCompareFunc cmp_func,
  48. gpointer cmp_data);
  49. /* Getting iters */
  50. GSequenceIter *g_sequence_get_begin_iter (GSequence *seq);
  51. GSequenceIter *g_sequence_get_end_iter (GSequence *seq);
  52. GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq,
  53. gint pos);
  54. GSequenceIter *g_sequence_append (GSequence *seq,
  55. gpointer data);
  56. GSequenceIter *g_sequence_prepend (GSequence *seq,
  57. gpointer data);
  58. GSequenceIter *g_sequence_insert_before (GSequenceIter *iter,
  59. gpointer data);
  60. void g_sequence_move (GSequenceIter *src,
  61. GSequenceIter *dest);
  62. void g_sequence_swap (GSequenceIter *a,
  63. GSequenceIter *b);
  64. GSequenceIter *g_sequence_insert_sorted (GSequence *seq,
  65. gpointer data,
  66. GCompareDataFunc cmp_func,
  67. gpointer cmp_data);
  68. GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq,
  69. gpointer data,
  70. GSequenceIterCompareFunc iter_cmp,
  71. gpointer cmp_data);
  72. void g_sequence_sort_changed (GSequenceIter *iter,
  73. GCompareDataFunc cmp_func,
  74. gpointer cmp_data);
  75. void g_sequence_sort_changed_iter (GSequenceIter *iter,
  76. GSequenceIterCompareFunc iter_cmp,
  77. gpointer cmp_data);
  78. void g_sequence_remove (GSequenceIter *iter);
  79. void g_sequence_remove_range (GSequenceIter *begin,
  80. GSequenceIter *end);
  81. void g_sequence_move_range (GSequenceIter *dest,
  82. GSequenceIter *begin,
  83. GSequenceIter *end);
  84. GSequenceIter *g_sequence_search (GSequence *seq,
  85. gpointer data,
  86. GCompareDataFunc cmp_func,
  87. gpointer cmp_data);
  88. GSequenceIter *g_sequence_search_iter (GSequence *seq,
  89. gpointer data,
  90. GSequenceIterCompareFunc iter_cmp,
  91. gpointer cmp_data);
  92. /* Dereferencing */
  93. gpointer g_sequence_get (GSequenceIter *iter);
  94. void g_sequence_set (GSequenceIter *iter,
  95. gpointer data);
  96. /* Operations on GSequenceIter * */
  97. gboolean g_sequence_iter_is_begin (GSequenceIter *iter);
  98. gboolean g_sequence_iter_is_end (GSequenceIter *iter);
  99. GSequenceIter *g_sequence_iter_next (GSequenceIter *iter);
  100. GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter);
  101. gint g_sequence_iter_get_position (GSequenceIter *iter);
  102. GSequenceIter *g_sequence_iter_move (GSequenceIter *iter,
  103. gint delta);
  104. GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter);
  105. /* Search */
  106. gint g_sequence_iter_compare (GSequenceIter *a,
  107. GSequenceIter *b);
  108. GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin,
  109. GSequenceIter *end);
  110. G_END_DECLS
  111. #endif /* __G_SEQUENCE_H__ */