libamxc  1.10.3
C Generic Data Containers
amxc_llist_it.c File Reference

Ambiorix linked list iterator API implementation. More...

#include <stdlib.h>
#include <amxc/amxc_llist.h>
#include <amxc/amxc_macros.h>

Go to the source code of this file.

Functions

static bool amxc_llist_it_are_adjacent (amxc_llist_it_t *const it1, amxc_llist_it_t *const it2)
 
static void amxc_llist_it_update (amxc_llist_it_t *const it)
 
int amxc_llist_it_init (amxc_llist_it_t *const it)
 Initializes a linked list iterator. More...
 
void amxc_llist_it_clean (amxc_llist_it_t *const it, amxc_llist_it_delete_t func)
 Removes the iterator from the list and frees allocated memory. More...
 
void amxc_llist_it_take (amxc_llist_it_t *const it)
 Removes the iterator from the list. More...
 
int amxc_llist_it_insert_before (amxc_llist_it_t *const reference, amxc_llist_it_t *const it)
 Inserts an iterator before a reference interator in the list. More...
 
int amxc_llist_it_insert_after (amxc_llist_it_t *const reference, amxc_llist_it_t *const it)
 Inserts an iterator after another reference interator in the list. More...
 
unsigned int amxc_llist_it_index_of (const amxc_llist_it_t *const it)
 Gets the index of an iterator in the list. More...
 
int amxc_llist_it_swap (amxc_llist_it_t *it1, amxc_llist_it_t *it2)
 Swaps two linked list iterators. More...
 

Detailed Description

Ambiorix linked list iterator API implementation.

Definition in file amxc_llist_it.c.

Function Documentation

◆ amxc_llist_it_are_adjacent()

static bool amxc_llist_it_are_adjacent ( amxc_llist_it_t *const  it1,
amxc_llist_it_t *const  it2 
)
static

Definition at line 60 of file amxc_llist_it.c.

61  {
62  return (it1->next == it2);
63 }
struct _amxc_llist_it * next
Definition: amxc_llist.h:216
static amxc_llist_it_t it2
static amxc_llist_it_t it1

◆ amxc_llist_it_update()

static void amxc_llist_it_update ( amxc_llist_it_t *const  it)
static

Definition at line 65 of file amxc_llist_it.c.

65  {
66  if(it->prev == NULL) {
67  if(it->llist != NULL) {
68  it->llist->head = it;
69  }
70  } else {
71  it->prev->next = it;
72  }
73 
74  if(it->next == NULL) {
75  if(it->llist != NULL) {
76  it->llist->tail = it;
77  }
78  } else {
79  it->next->prev = it;
80  }
81 }
amxc_htable_it_t * next
Definition: amxc_htable.h:141
static amxc_htable_it_t it[2000]