IpatchIter

IpatchIter — Iterator instance

Stability Level

Stable, unless otherwise indicated

Synopsis

                    IpatchIter;
                    IpatchIterMethods;
#define             IPATCH_TYPE_ITER
GType               ipatch_iter_get_type                (void);
IpatchIter *        ipatch_iter_alloc                   (void);
void                ipatch_iter_free                    (IpatchIter *iter);
IpatchIter *        ipatch_iter_duplicate               (IpatchIter *iter);
#define             ipatch_iter_get                     (iter)
#define             ipatch_iter_next                    (iter)
#define             ipatch_iter_first                   (iter)
#define             ipatch_iter_last                    (iter)
#define             ipatch_iter_index                   (iter,
                                                         pos)
#define             ipatch_iter_insert                  (iter,
                                                         item)
#define             ipatch_iter_remove                  (iter)
#define             ipatch_iter_count                   (iter)
#define             IPATCH_ITER_GSLIST_GET_LIST         (iter)
#define             IPATCH_ITER_GSLIST_GET_POS          (iter)
#define             IPATCH_ITER_GSLIST_SET_LIST         (iter,
                                                         list)
#define             IPATCH_ITER_GSLIST_SET_POS          (iter,
                                                         pos)
void                ipatch_iter_GSList_init             (IpatchIter *iter,
                                                         GSList **list);
gpointer            ipatch_iter_GSList_get              (IpatchIter *iter);
gpointer            ipatch_iter_GSList_next             (IpatchIter *iter);
gpointer            ipatch_iter_GSList_first            (IpatchIter *iter);
gpointer            ipatch_iter_GSList_last             (IpatchIter *iter);
gpointer            ipatch_iter_GSList_index            (IpatchIter *iter,
                                                         int index);
void                ipatch_iter_GSList_insert           (IpatchIter *iter,
                                                         gpointer item);
void                ipatch_iter_GSList_remove           (IpatchIter *iter);
int                 ipatch_iter_GSList_count            (IpatchIter *iter);
#define             IPATCH_ITER_GLIST_GET_LIST          (iter)
#define             IPATCH_ITER_GLIST_GET_POS           (iter)
#define             IPATCH_ITER_GLIST_SET_LIST          (iter,
                                                         list)
#define             IPATCH_ITER_GLIST_SET_POS           (iter,
                                                         pos)
void                ipatch_iter_GList_init              (IpatchIter *iter,
                                                         GList **list);
gpointer            ipatch_iter_GList_get               (IpatchIter *iter);
gpointer            ipatch_iter_GList_next              (IpatchIter *iter);
gpointer            ipatch_iter_GList_first             (IpatchIter *iter);
gpointer            ipatch_iter_GList_last              (IpatchIter *iter);
gpointer            ipatch_iter_GList_index             (IpatchIter *iter,
                                                         int index);
void                ipatch_iter_GList_insert            (IpatchIter *iter,
                                                         gpointer item);
void                ipatch_iter_GList_remove            (IpatchIter *iter);
int                 ipatch_iter_GList_count             (IpatchIter *iter);
#define             IPATCH_ITER_ARRAY_GET_ARRAY         (iter)
#define             IPATCH_ITER_ARRAY_GET_SIZE          (iter)
#define             IPATCH_ITER_ARRAY_GET_POS           (iter)
#define             IPATCH_ITER_ARRAY_SET_ARRAY         (iter,
                                                         array)
#define             IPATCH_ITER_ARRAY_SET_SIZE          (iter,
                                                         size)
#define             IPATCH_ITER_ARRAY_SET_POS           (iter,
                                                         pos)
void                ipatch_iter_array_init              (IpatchIter *iter,
                                                         gpointer *array,
                                                         guint size);
gpointer            ipatch_iter_array_get               (IpatchIter *iter);
gpointer            ipatch_iter_array_next              (IpatchIter *iter);
gpointer            ipatch_iter_array_first             (IpatchIter *iter);
gpointer            ipatch_iter_array_last              (IpatchIter *iter);
gpointer            ipatch_iter_array_index             (IpatchIter *iter,
                                                         int index);
void                ipatch_iter_array_insert            (IpatchIter *iter,
                                                         gpointer item);
void                ipatch_iter_array_remove            (IpatchIter *iter);
int                 ipatch_iter_array_count             (IpatchIter *iter);

Description

A boxed type (structure) used for abstracting manipulation of object lists.

Details

IpatchIter

typedef struct {
} IpatchIter;

IpatchIterMethods

typedef struct {
  gpointer (*get)(IpatchIter *iter); /* get item method */
  gpointer (*next)(IpatchIter *iter); /* next item method */
  gpointer (*first)(IpatchIter *iter); /* first item method */
  gpointer (*last)(IpatchIter *iter); /* last item method */
  gpointer (*index)(IpatchIter *iter, int index); /* index item method */
  void (*insert)(IpatchIter *iter, gpointer item); /* insert item method */
  void (*remove)(IpatchIter *iter); /* remove current item method */
  int (*count)(IpatchIter *iter); /* count items method */
} IpatchIterMethods;

IPATCH_TYPE_ITER

#define IPATCH_TYPE_ITER   (ipatch_iter_get_type ())

ipatch_iter_get_type ()

GType               ipatch_iter_get_type                (void);

Gets the GBoxed derived type for IpatchIter structures.

Returns :

GType of IpatchIter structures.

ipatch_iter_alloc ()

IpatchIter *        ipatch_iter_alloc                   (void);

Allocates an item iterator. This function is seldom used since IpatchIter structures are usually allocated on the stack.

Returns :

Newly allocated item iterator. Should be freed with ipatch_iter_free() when finished with it.

ipatch_iter_free ()

void                ipatch_iter_free                    (IpatchIter *iter);

Frees an item iterator that was allocated with ipatch_iter_alloc(). Seldom used since IpatchIter structures are usually allocated on the stack.

iter :

Item iterator

ipatch_iter_duplicate ()

IpatchIter *        ipatch_iter_duplicate               (IpatchIter *iter);

Duplicates a patch iterator. Seldom used since IpatchIter structures are usually allocated on the stack and can be copied directly.

iter :

Patch iterator to duplicate

Returns :

Newly allocated patch iter identical to iter. Free it with ipatch_iter_free() when finished.

ipatch_iter_get()

#define ipatch_iter_get(iter) (((iter)->methods->get)(iter))

ipatch_iter_next()

#define ipatch_iter_next(iter) (((iter)->methods->next)(iter))

ipatch_iter_first()

#define ipatch_iter_first(iter) (((iter)->methods->first)(iter))

ipatch_iter_last()

#define ipatch_iter_last(iter) (((iter)->methods->last)(iter))

ipatch_iter_index()

#define ipatch_iter_index(iter, pos) (((iter)->methods->index)(iter, pos))

ipatch_iter_insert()

#define ipatch_iter_insert(iter, item) (((iter)->methods->insert)(iter, item))

ipatch_iter_remove()

#define ipatch_iter_remove(iter) (((iter)->methods->remove)(iter))

ipatch_iter_count()

#define ipatch_iter_count(iter) (((iter)->methods->count)(iter))

IPATCH_ITER_GSLIST_GET_LIST()

#define IPATCH_ITER_GSLIST_GET_LIST(iter) ((GSList **)(iter->data))

IPATCH_ITER_GSLIST_GET_POS()

#define IPATCH_ITER_GSLIST_GET_POS(iter) ((GSList *)(iter->data2))

IPATCH_ITER_GSLIST_SET_LIST()

#define IPATCH_ITER_GSLIST_SET_LIST(iter, list) (iter->data = list)

IPATCH_ITER_GSLIST_SET_POS()

#define IPATCH_ITER_GSLIST_SET_POS(iter, pos) (iter->data2 = pos)

ipatch_iter_GSList_init ()

void                ipatch_iter_GSList_init             (IpatchIter *iter,
                                                         GSList **list);

Initialize an iterator to iterate over a GSList.

iter :

Iterator to initialize

list :

Pointer to root GSList pointer to initialize iterator to

ipatch_iter_GSList_get ()

gpointer            ipatch_iter_GSList_get              (IpatchIter *iter);

GSList item iterator method to get the current item.

iter :

Item iterator initialized with a GSList

Returns :

Current item or NULL if no current item.

ipatch_iter_GSList_next ()

gpointer            ipatch_iter_GSList_next             (IpatchIter *iter);

GSList item iterator method to get the next item and advance the iterator's position.

iter :

Item iterator initialized with a GSList

Returns :

Next item or NULL if no more items.

ipatch_iter_GSList_first ()

gpointer            ipatch_iter_GSList_first            (IpatchIter *iter);

GSList item iterator method to get the first item and set the iterator's position to it.

iter :

Item iterator initialized with a GSList

Returns :

First item or NULL if GSList is empty.

ipatch_iter_GSList_last ()

gpointer            ipatch_iter_GSList_last             (IpatchIter *iter);

GSList item iterator method to get the last item and set the iterator's position to it.

iter :

Item iterator initialized with a GSList

Returns :

Last item or NULL if GSList is empty.

ipatch_iter_GSList_index ()

gpointer            ipatch_iter_GSList_index            (IpatchIter *iter,
                                                         int index);

GSList item iterator method to get an item at a given index and set the iterator's position to it.

iter :

Item iterator initialized with a GSList

index :

Index, from 0, of item to get

Returns :

item at the index position or NULL if index is off the end of the GSList.

ipatch_iter_GSList_insert ()

void                ipatch_iter_GSList_insert           (IpatchIter *iter,
                                                         gpointer item);

GSList item iterator method to insert an item pointer.

iter :

Item iterator initialized with a GSList

item :

Pointer to insert

ipatch_iter_GSList_remove ()

void                ipatch_iter_GSList_remove           (IpatchIter *iter);

GSList item iterator method to remove the current item and advance the current position.

iter :

Item iterator initialized with a GSList

ipatch_iter_GSList_count ()

int                 ipatch_iter_GSList_count            (IpatchIter *iter);

GSList item iterator method to get the count of items.

iter :

Item iterator initialized with a GSList

Returns :

Count of items in GSList iterator.

IPATCH_ITER_GLIST_GET_LIST()

#define IPATCH_ITER_GLIST_GET_LIST(iter) ((GList **)(iter->data))

IPATCH_ITER_GLIST_GET_POS()

#define IPATCH_ITER_GLIST_GET_POS(iter) ((GList *)(iter->data2))

IPATCH_ITER_GLIST_SET_LIST()

#define IPATCH_ITER_GLIST_SET_LIST(iter, list) (iter->data = list)

IPATCH_ITER_GLIST_SET_POS()

#define IPATCH_ITER_GLIST_SET_POS(iter, pos) (iter->data2 = pos)

ipatch_iter_GList_init ()

void                ipatch_iter_GList_init              (IpatchIter *iter,
                                                         GList **list);

Initialize an iterator to iterate over a GList.

iter :

Iterator to initialize

list :

Pointer to root GList pointer to initialize iterator to

ipatch_iter_GList_get ()

gpointer            ipatch_iter_GList_get               (IpatchIter *iter);

GList item iterator method to get the current item.

iter :

Item iterator initialized with a GList

Returns :

Current item or NULL if no current item.

ipatch_iter_GList_next ()

gpointer            ipatch_iter_GList_next              (IpatchIter *iter);

GList item iterator method to get the next item and advance the iterator's position.

iter :

Item iterator initialized with a GList

Returns :

Next item or NULL if no more items.

ipatch_iter_GList_first ()

gpointer            ipatch_iter_GList_first             (IpatchIter *iter);

GList item iterator method to get the first item and set the iterator's position to it.

iter :

Item iterator initialized with a GList

Returns :

First item or NULL if GList is empty.

ipatch_iter_GList_last ()

gpointer            ipatch_iter_GList_last              (IpatchIter *iter);

GList item iterator method to get the last item and set the iterator's position to it.

iter :

Item iterator initialized with a GList

Returns :

Last item or NULL if GList is empty.

ipatch_iter_GList_index ()

gpointer            ipatch_iter_GList_index             (IpatchIter *iter,
                                                         int index);

GList item iterator method to get an item at a given index and set the iterator's position to it.

iter :

Item iterator initialized with a GList

index :

Index, from 0, of item to get

Returns :

item at the index position or NULL if index is off the end of the GList.

ipatch_iter_GList_insert ()

void                ipatch_iter_GList_insert            (IpatchIter *iter,
                                                         gpointer item);

GList item iterator method to insert an item pointer.

iter :

Item iterator initialized with a GList

item :

Pointer to insert

ipatch_iter_GList_remove ()

void                ipatch_iter_GList_remove            (IpatchIter *iter);

GList item iterator method to remove the current item and advance the current position.

iter :

Item iterator initialized with a GList

ipatch_iter_GList_count ()

int                 ipatch_iter_GList_count             (IpatchIter *iter);

GList item iterator method to get the count of items.

iter :

Item iterator initialized with a GList

Returns :

Count of items in GList iterator.

IPATCH_ITER_ARRAY_GET_ARRAY()

#define IPATCH_ITER_ARRAY_GET_ARRAY(iter) ((gpointer *)(iter->data))

IPATCH_ITER_ARRAY_GET_SIZE()

#define IPATCH_ITER_ARRAY_GET_SIZE(iter) (GPOINTER_TO_UINT (iter->data2))

IPATCH_ITER_ARRAY_GET_POS()

#define IPATCH_ITER_ARRAY_GET_POS(iter) (GPOINTER_TO_INT (iter->data3))

IPATCH_ITER_ARRAY_SET_ARRAY()

#define IPATCH_ITER_ARRAY_SET_ARRAY(iter, array) (iter->data = array)

IPATCH_ITER_ARRAY_SET_SIZE()

#define             IPATCH_ITER_ARRAY_SET_SIZE(iter, size)

IPATCH_ITER_ARRAY_SET_POS()

#define             IPATCH_ITER_ARRAY_SET_POS(iter, pos)

ipatch_iter_array_init ()

void                ipatch_iter_array_init              (IpatchIter *iter,
                                                         gpointer *array,
                                                         guint size);

Initialize an iterator to iterate over an array (read only).

iter :

Iterator to initialize

array :

Pointer to an array of pointers

size :

Count of elements in array.

ipatch_iter_array_get ()

gpointer            ipatch_iter_array_get               (IpatchIter *iter);

Array item iterator method to get the current item.

iter :

Item iterator initialized with an array

Returns :

Current item or NULL if no current item.

ipatch_iter_array_next ()

gpointer            ipatch_iter_array_next              (IpatchIter *iter);

Array item iterator method to get the next item and advance the iterator's position.

iter :

Item iterator initialized with an array

Returns :

Next item or NULL if no more items.

ipatch_iter_array_first ()

gpointer            ipatch_iter_array_first             (IpatchIter *iter);

Array item iterator method to get the first item and set the iterator's position to it.

iter :

Item iterator initialized with an array

Returns :

First item or NULL if array is empty.

ipatch_iter_array_last ()

gpointer            ipatch_iter_array_last              (IpatchIter *iter);

Array item iterator method to get the last item and set the iterator's position to it.

iter :

Item iterator initialized with an array

Returns :

Last item or NULL if array is empty.

ipatch_iter_array_index ()

gpointer            ipatch_iter_array_index             (IpatchIter *iter,
                                                         int index);

Array item iterator method to get an item at a given index and set the iterator's position to it.

iter :

Item iterator initialized with an array

index :

Index, from 0, of item to get

Returns :

item at the index position or NULL if index is off the end of the array.

ipatch_iter_array_insert ()

void                ipatch_iter_array_insert            (IpatchIter *iter,
                                                         gpointer item);

array item iterator method to insert an item pointer.

iter :

Item iterator initialized with a array

item :

Pointer to insert

ipatch_iter_array_remove ()

void                ipatch_iter_array_remove            (IpatchIter *iter);

array item iterator method to remove the current item and advance the current position.

iter :

Item iterator initialized with a array

ipatch_iter_array_count ()

int                 ipatch_iter_array_count             (IpatchIter *iter);

array item iterator method to get the count of items.

iter :

Item iterator initialized with a array

Returns :

Count of items in array iterator.