ROHC compression/decompression library
Data Structures | Enumerations | Functions
comp_list.h File Reference

Define list compression with its function. More...

#include <netinet/ip6.h>
Include dependency graph for comp_list.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  rohc_list_item
 A list item. More...
struct  list_elt
 Define a generic element in a compression list. More...
struct  c_list
 Define a list for compression. More...
struct  c_translation
 Define a compression translation table element. More...
struct  d_translation
 Define a decompression translation table element. More...

Enumerations

enum  ext_header_version { HBH = 0, DEST = 60, RTHDR = 43, AH = 51 }
 Header version. More...

Functions

int create_list (struct c_list *list)
 Create one compression_list.
int add_elt (struct c_list *list, struct rohc_list_item *item, int index)
 Add an element at the begin of the list.
int push_back (struct c_list *list, struct rohc_list_item *item, int index)
 Add an element at the end of the list.
void delete_elt (struct c_list *list, struct rohc_list_item *item)
 Delete the specified element of the list.
struct list_eltget_elt (struct c_list *list, int index)
 Get the element at the specified index.
int elt_index (struct c_list *list, struct rohc_list_item *item)
 Get the index of the specified element in the list.
int type_is_present (struct c_list *list, struct rohc_list_item *item)
 Indicate if the type of the specified element is present.
void destroy_list (struct c_list *list)
 Destroy the list.
int insert_elt (struct c_list *list, struct rohc_list_item *item, int index, int index_table)
 Insert an element at the specified position.
size_t size_list (const struct c_list *const list)
 Get the size of the given list.
void empty_list (struct c_list *list)
 Empty the list.

Detailed Description

Define list compression with its function.

Author:
Emmanuelle Pechereau <epechereau@toulouse.viveris.com>

Enumeration Type Documentation

Header version.

Enumerator:
HBH 

Hop by hop header.

DEST 

Destination header.

RTHDR 

Routing header.

AH 

AH header.


Function Documentation

int add_elt ( struct c_list list,
struct rohc_list_item item,
int  index 
)

Add an element at the begin of the list.

Parameters:
listthe list where the element is added
itemthe item of the new element
indexthe index in based table
Returns:
1 if successful, 0 otherwise

References c_list::first_elt, list_elt::index_table, list_elt::item, list_elt::next_elt, list_elt::prev_elt, and rohc_debugf.

Referenced by insert_elt(), and push_back().

int create_list ( struct c_list list)

Create one compression_list.

Functions prototypes

Returns:
1 if successful, 0 otherwise

References c_list::first_elt, c_list::gen_id, and rohc_debugf.

void delete_elt ( struct c_list list,
struct rohc_list_item item 
)

Delete the specified element of the list.

Parameters:
listthe list where the element is destroyed
itemthe element to delete

References c_list::first_elt, list_elt::item, list_elt::next_elt, and list_elt::prev_elt.

Referenced by c_create_current_list(), and rohc_list_decide_ipv6_compression().

void destroy_list ( struct c_list list)

Destroy the list.

Parameters:
listthe list to destroy

References c_list::first_elt, and list_elt::next_elt.

Referenced by c_generic_destroy(), and d_generic_destroy().

int elt_index ( struct c_list list,
struct rohc_list_item item 
)

Get the index of the specified element in the list.

Parameters:
listthe list where is the element
itemthe specified element
Returns:
the index, -1 if the element is not in the list

References c_list::first_elt, list_elt::item, and list_elt::next_elt.

Referenced by c_create_current_list().

void empty_list ( struct c_list list)

Empty the list.

Parameters:
listthe list to empty

References c_list::first_elt, list_elt::next_elt, list_elt::prev_elt, and rohc_debugf.

Referenced by rohc_list_decide_ipv6_compression().

struct list_elt* get_elt ( struct c_list list,
int  index 
) [read]

Get the element at the specified index.

Parameters:
listthe list where is the element
indexthe specified index
Returns:
item, NULL if there is no element at this index

References c_list::first_elt, list_elt::next_elt, and size_list().

Referenced by c_create_current_list(), d_decode_dynamic_ip6(), rohc_list_decide_ipv6_compression(), rohc_list_decide_type(), rohc_list_encode_type_0(), rohc_list_encode_type_1(), rohc_list_encode_type_2(), and rohc_list_encode_type_3().

int insert_elt ( struct c_list list,
struct rohc_list_item item,
int  index,
int  index_table 
)

Insert an element at the specified position.

Parameters:
listThe list in which the element is inserted
itemThe element to insert
indexThe position
index_tableThe index in based_table
Returns:
1 if successful, 0 otherwise

References add_elt(), c_list::first_elt, list_elt::index_table, list_elt::item, list_elt::next_elt, list_elt::prev_elt, rohc_debugf, and size_list().

Referenced by c_create_current_list(), and rohc_list_decide_ipv6_compression().

int push_back ( struct c_list list,
struct rohc_list_item item,
int  index 
)

Add an element at the end of the list.

Parameters:
listthe list where the element is added
itemthe item of the new element
indexthe index in based table
Returns:
1 if successful, 0 otherwise

References add_elt(), c_list::first_elt, list_elt::index_table, list_elt::item, list_elt::next_elt, list_elt::prev_elt, and rohc_debugf.

Referenced by c_create_current_list().

size_t size_list ( const struct c_list *const  list)
int type_is_present ( struct c_list list,
struct rohc_list_item item 
)

Indicate if the type of the specified element is present.

Parameters:
listthe list where is the element
itemthe specified element
Returns:
1 if present, 0 else

References c_list::first_elt, list_elt::item, list_elt::next_elt, rohc_debugf, and rohc_list_item::type.

Referenced by rohc_list_decide_type(), rohc_list_encode_type_1(), rohc_list_encode_type_2(), and rohc_list_encode_type_3().