/* Copyright (C) 2013 The glibmm Development Team
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* 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, see .
*/
_DEFS(glibmm,glib)
#include // std::size_t
#include
#include
#include
#include
#include
#ifndef DOXYGEN_SHOULD_SKIP_THIS
typedef struct _GByteArray GByteArray;
#endif
namespace Glib
{
/** ByteArray - Arrays of bytes.
* ByteArray is a mutable array of bytes, to provide arrays of bytes which grow
* automatically as elements are added.
*
* To create a new ByteArray use create(). To add elements to a ByteArray, use
* append(), and prepend().
*
* To set the size of a ByteArray, use set_size().
*
* @newin{2,36}
*/
class GLIBMM_API ByteArray final
{
_CLASS_OPAQUE_REFCOUNTED(ByteArray, GByteArray, NONE, g_byte_array_ref, g_byte_array_unref, GLIBMM_API)
_IS_REFCOUNTED_BOXEDTYPE
_IGNORE(g_byte_array_ref, g_byte_array_unref)
public:
/** A Slot type to compare two elements in the array. The slot should return
* -1 if the first value is less than the second, 0 if they are equal and 1
* if the first value is greater than the second.
*
* Slot Prototype:
*
*
* int compare(const guint8* first, const guint8* second);
*
*/
using SlotCompare = sigc::slot;
_WRAP_METHOD(static Glib::RefPtr create(), g_byte_array_new)
_WRAP_METHOD(Glib::RefPtr append(const guint8* data, guint len), g_byte_array_append, refreturn)
_WRAP_METHOD(Glib::RefPtr prepend(const guint8* data, guint len), g_byte_array_prepend, refreturn)
/** Gets the size of the byte array.
* @return The size.
* @newin{2,36}
*/
guint size() const;
/** Gets the data of the byte array.
* @return The data.
* @newin{2,36}
*/
guint8* get_data();
/** Gets the data of the byte array.
* @return The data.
* @newin{2,36}
*/
const guint8* get_data() const;
_WRAP_METHOD(Glib::RefPtr remove_index(guint index), g_byte_array_remove_index, refreturn)
_WRAP_METHOD(Glib::RefPtr remove_index_fast(guint index), g_byte_array_remove_index_fast, refreturn)
_WRAP_METHOD(Glib::RefPtr remove_range(guint index, guint length), g_byte_array_remove_range, refreturn)
_WRAP_METHOD(void sort(const SlotCompare& slot), g_byte_array_sort_with_data, slot_name slot, slot_callback ByteArray_Compare_Data_Func, no_slot_copy)
_IGNORE(g_byte_array_sort)
_WRAP_METHOD(Glib::RefPtr set_size(guint length), g_byte_array_set_size, refreturn)
};
} // namespace Glib