[kdbus] KDBUS_ITEM_PAYLOAD_OFF items are (once again) relative to msg header
[platform/upstream/glib.git] / glib / garray.h
index 6bc51f7..35e298f 100644 (file)
@@ -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 <http://www.gnu.org/licenses/>.
  */
 
 /*
  * GLib at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#if defined(G_DISABLE_SINGLE_INCLUDES) && !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
-#error "Only <glib.h> can be included directly."
-#endif
-
 #ifndef __G_ARRAY_H__
 #define __G_ARRAY_H__
 
+#if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
+#error "Only <glib.h> can be included directly."
+#endif
+
 #include <glib/gtypes.h>
 
 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);