glibmm: Glib::Bytes Class Reference

A simple refcounted data type representing an immutable byte sequence from an unspecified origin. More...

#include <glibmm/bytes.h>

Public Member Functions

void reference () const
Increment the reference count for this object. More...

void unreference () const
Decrement the reference count for this object. More...

GBytes* gobj ()
Provides access to the underlying C instance. More...

const GBytes* gobj () const
Provides access to the underlying C instance. More...

GBytes* gobj_copy () const
Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. More...

Bytes ()=delete
Bytes (const Bytes &)=delete
Bytes & operator= (const Bytes &)=delete
gconstpointer get_data (gsize& size ) const
Get the byte data in the Bytes . More...

gsize get_size () const
Get the size of the byte data in the Bytes . More...

Static Public Member Functions

static Glib::RefPtr < Glib::Bytes > create (gconstpointer data, gsize size )
static guint hash (gconstpointer bytes)
Creates an integer hash code for the byte data in the Bytes . More...

static bool equal (gconstpointer bytes1, gconstpointer bytes2)
Compares the two Bytes values being pointed to and returns true if they are equal. More...

static gint compare (gconstpointer bytes1, gconstpointer bytes2)
Compares the two Bytes values. More...

Protected Member Functions

void operator delete (void*, std::size_t)

Related Functions

(Note that these are not member functions.)

Glib::RefPtr < Glib::Bytes > wrap (GBytes* object, bool take_copy=false)
A Glib::wrap() method for this object. More...

Detailed Description

A simple refcounted data type representing an immutable byte sequence from an unspecified origin.

The purpose of the Bytes class is to keep the memory region that it holds alive for as long as anyone holds a reference to the bytes. When the last reference count is dropped, the memory is released. Multiple unrelated callers can use byte data in the Bytes object without coordinating their activities, resting assured that the byte data will not change or move while they hold a reference.

A Bytes object can come from many different origins that may have different procedures for freeing the memory region. Examples are memory from g_malloc(), from memory slices, from a GMappedFile or memory from other allocators.

Since glibmm 2.34:

Constructor & Destructor Documentation

Glib::Bytes::Bytes ( )
delete
Glib::Bytes::Bytes ( const Bytes & )
delete

Member Function Documentation

static gint Glib::Bytes::compare ( gconstpointer bytes1 ,
gconstpointer bytes2
)
static

Compares the two Bytes values.

This function can be used to sort GBytes instances in lexographical order.

Since glibmm 2.32:
Parameters
bytes1 A pointer to a Bytes .
bytes2 A pointer to a Bytes to compare with bytes1 .
Returns
A negative value if bytes2 is lesser, a positive value if bytes2 is greater, and zero if bytes2 is equal to bytes1.
static Glib::RefPtr < Glib::Bytes > Glib::Bytes::create ( gconstpointer data ,
gsize size
)
static
static bool Glib::Bytes::equal ( gconstpointer bytes1 ,
gconstpointer bytes2
)
static

Compares the two Bytes values being pointed to and returns true if they are equal.

This function can be passed to g_hash_table_new() as the key_equal_func parameter, when using non- nullptr Bytes pointers as keys in a HashTable.

Since glibmm 2.32:
Parameters
bytes1 A pointer to a Bytes .
bytes2 A pointer to a Bytes to compare with bytes1 .
Returns
true if the two keys match.
gconstpointer Glib::Bytes::get_data ( gsize & size ) const

Get the byte data in the Bytes .

This data should not be modified.

This function will always return the same pointer for a given Bytes .

nullptr may be returned if size is 0. This is not guaranteed, as the Bytes may represent an empty string with data non- nullptr and size as 0. nullptr will not be returned if size is non-zero.

Since glibmm 2.32:
Parameters
size Location to return size of byte data.
Returns
A pointer to the byte data, or nullptr .
gsize Glib::Bytes::get_size ( ) const

Get the size of the byte data in the Bytes .

This function will always return the same value for a given Bytes .

Since glibmm 2.32:
Returns
The size.
GBytes* Glib::Bytes::gobj ( )

Provides access to the underlying C instance.

const GBytes* Glib::Bytes::gobj ( ) const

Provides access to the underlying C instance.

GBytes* Glib::Bytes::gobj_copy ( ) const

Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs.

static guint Glib::Bytes::hash ( gconstpointer bytes )
static

Creates an integer hash code for the byte data in the Bytes .

This function can be passed to g_hash_table_new() as the key_hash_func parameter, when using non- nullptr Bytes pointers as keys in a HashTable.

Since glibmm 2.32:
Parameters
bytes A pointer to a Bytes key.
Returns
A hash value corresponding to the key.
void Glib::Bytes::operator delete ( void * ,
std::size_t
)
protected
Bytes & Glib::Bytes::operator= ( const Bytes & )
delete
void Glib::Bytes::reference ( ) const

Increment the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

void Glib::Bytes::unreference ( ) const

Decrement the reference count for this object.

You should never need to do this manually - use the object via a RefPtr instead.

Friends And Related Function Documentation

Glib::RefPtr < Glib::Bytes > wrap ( GBytes * object ,
bool take_copy = false
)
related

A Glib::wrap() method for this object.

Parameters
object The C instance.
take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref.
Returns
A C++ instance that wraps this C instance.