X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=glib%2Fgarray.h;h=35e298fafd4e01f2338679684bb54c31eed4dfcd;hb=49b59e5ac4428a6a99a85d699c3662f96efc4e9d;hp=6bc51f797ec119c78abb936f3f9a31be1cd41b10;hpb=631d0c3534661e549f7df18fbb9832bdf19c5eaf;p=platform%2Fupstream%2Fglib.git diff --git a/glib/garray.h b/glib/garray.h index 6bc51f7..35e298f 100644 --- a/glib/garray.h +++ b/glib/garray.h @@ -12,9 +12,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. + * License along with this library; if not, see . */ /* @@ -24,17 +22,18 @@ * GLib at ftp://ftp.gtk.org/pub/gtk/. */ -#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) -#error "Only can be included directly." -#endif - #ifndef __G_ARRAY_H__ #define __G_ARRAY_H__ +#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION) +#error "Only can be included directly." +#endif + #include G_BEGIN_DECLS +typedef struct _GBytes GBytes; typedef struct _GArray GArray; typedef struct _GByteArray GByteArray; typedef struct _GPtrArray GPtrArray; @@ -67,77 +66,119 @@ struct _GPtrArray #define g_array_insert_val(a,i,v) g_array_insert_vals (a, i, &(v), 1) #define g_array_index(a,t,i) (((t*) (void *) (a)->data) [(i)]) +GLIB_AVAILABLE_IN_ALL GArray* g_array_new (gboolean zero_terminated, gboolean clear_, guint element_size); +GLIB_AVAILABLE_IN_ALL GArray* g_array_sized_new (gboolean zero_terminated, gboolean clear_, guint element_size, guint reserved_size); +GLIB_AVAILABLE_IN_ALL gchar* g_array_free (GArray *array, gboolean free_segment); +GLIB_AVAILABLE_IN_ALL GArray *g_array_ref (GArray *array); +GLIB_AVAILABLE_IN_ALL void g_array_unref (GArray *array); +GLIB_AVAILABLE_IN_ALL guint g_array_get_element_size (GArray *array); +GLIB_AVAILABLE_IN_ALL GArray* g_array_append_vals (GArray *array, gconstpointer data, guint len); +GLIB_AVAILABLE_IN_ALL GArray* g_array_prepend_vals (GArray *array, gconstpointer data, guint len); +GLIB_AVAILABLE_IN_ALL GArray* g_array_insert_vals (GArray *array, guint index_, gconstpointer data, guint len); +GLIB_AVAILABLE_IN_ALL GArray* g_array_set_size (GArray *array, guint length); +GLIB_AVAILABLE_IN_ALL GArray* g_array_remove_index (GArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL GArray* g_array_remove_index_fast (GArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL GArray* g_array_remove_range (GArray *array, guint index_, guint length); +GLIB_AVAILABLE_IN_ALL void g_array_sort (GArray *array, GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL void g_array_sort_with_data (GArray *array, GCompareDataFunc compare_func, gpointer user_data); +GLIB_AVAILABLE_IN_ALL +void g_array_set_clear_func (GArray *array, + GDestroyNotify clear_func); /* Resizable pointer array. This interface is much less complicated * than the above. Add appends a pointer. Remove fills any cleared * spot and shortens the array. remove_fast will again distort order. */ #define g_ptr_array_index(array,index_) ((array)->pdata)[index_] +GLIB_AVAILABLE_IN_ALL GPtrArray* g_ptr_array_new (void); +GLIB_AVAILABLE_IN_ALL GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_ALL GPtrArray* g_ptr_array_sized_new (guint reserved_size); +GLIB_AVAILABLE_IN_ALL +GPtrArray* g_ptr_array_new_full (guint reserved_size, + GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_ALL gpointer* g_ptr_array_free (GPtrArray *array, gboolean free_seg); +GLIB_AVAILABLE_IN_ALL GPtrArray* g_ptr_array_ref (GPtrArray *array); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_unref (GPtrArray *array); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_set_free_func (GPtrArray *array, GDestroyNotify element_free_func); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_set_size (GPtrArray *array, gint length); +GLIB_AVAILABLE_IN_ALL gpointer g_ptr_array_remove_index (GPtrArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL gpointer g_ptr_array_remove_index_fast (GPtrArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL gboolean g_ptr_array_remove (GPtrArray *array, gpointer data); +GLIB_AVAILABLE_IN_ALL gboolean g_ptr_array_remove_fast (GPtrArray *array, gpointer data); -void g_ptr_array_remove_range (GPtrArray *array, +GLIB_AVAILABLE_IN_ALL +GPtrArray *g_ptr_array_remove_range (GPtrArray *array, guint index_, guint length); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_add (GPtrArray *array, gpointer data); +GLIB_AVAILABLE_IN_2_40 +void g_ptr_array_insert (GPtrArray *array, + gint index_, + gpointer data); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_sort (GPtrArray *array, GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_sort_with_data (GPtrArray *array, GCompareDataFunc compare_func, gpointer user_data); +GLIB_AVAILABLE_IN_ALL void g_ptr_array_foreach (GPtrArray *array, GFunc func, gpointer user_data); @@ -147,29 +188,47 @@ void g_ptr_array_foreach (GPtrArray *array, * but type-safe. */ +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_new (void); +GLIB_AVAILABLE_IN_ALL +GByteArray* g_byte_array_new_take (guint8 *data, + gsize len); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_sized_new (guint reserved_size); +GLIB_AVAILABLE_IN_ALL guint8* g_byte_array_free (GByteArray *array, gboolean free_segment); +GLIB_AVAILABLE_IN_ALL +GBytes* g_byte_array_free_to_bytes (GByteArray *array); +GLIB_AVAILABLE_IN_ALL GByteArray *g_byte_array_ref (GByteArray *array); +GLIB_AVAILABLE_IN_ALL void g_byte_array_unref (GByteArray *array); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_append (GByteArray *array, const guint8 *data, guint len); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_prepend (GByteArray *array, const guint8 *data, guint len); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_set_size (GByteArray *array, guint length); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_remove_index (GByteArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_remove_index_fast (GByteArray *array, guint index_); +GLIB_AVAILABLE_IN_ALL GByteArray* g_byte_array_remove_range (GByteArray *array, guint index_, guint length); +GLIB_AVAILABLE_IN_ALL void g_byte_array_sort (GByteArray *array, GCompareFunc compare_func); +GLIB_AVAILABLE_IN_ALL void g_byte_array_sort_with_data (GByteArray *array, GCompareDataFunc compare_func, gpointer user_data);