alc_list.h File Reference

Receive packets to the list. More...

#include <winsock2.h>
#include "defines.h"

Include dependency graph for alc_list.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  alc_rcv_container
struct  alc_list_node
struct  alc_list

Typedefs

typedef alc_rcv_container alc_rcv_container_t
typedef alc_list_node alc_list_node_t
typedef alc_list alc_list_t

Functions

void push_back (alc_list_t *a_list, alc_rcv_container_t *a_data)
void push_front (alc_list_t *a_list, alc_rcv_container_t *a_data)
alc_rcv_container_tpop_front (alc_list_t *a_list)
int is_empty (const alc_list_t *a_list)
alc_list_tbuild_list (void)
void destroy_list (alc_list_t *a_list)


Detailed Description

Receive packets to the list.

Author
peltotal
Date
2007/02/26 13:48:19
Revision
1.10

MAD-ALCLIB: Implementation of ALC/LCT protocols, Compact No-Code FEC, Simple XOR FEC, Reed-Solomon FEC, and RLC Congestion Control protocol. Copyright (c) 2003-2007 TUT - Tampere University of Technology main authors/contacts: jani.peltotalo@tut.fi and sami.peltotalo@tut.fi

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program 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 General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

In addition, as a special exception, TUT - Tampere University of Technology gives permission to link the code of this program with the OpenSSL library (or with modified versions of OpenSSL that use the same license as OpenSSL), and distribute linked combinations including the two. You must obey the GNU General Public License in all respects for all of the code used other than OpenSSL. If you modify this file, you may extend this exception to your version of the file, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.

Definition in file alc_list.h.


Typedef Documentation

typedef struct alc_list_node alc_list_node_t

typedef struct alc_list alc_list_t

typedef struct alc_rcv_container alc_rcv_container_t


Function Documentation

alc_list_t* build_list ( void   ) 

This function creates new list.

Returns:
pointer to the created list, NULL in error cases.

Definition at line 256 of file alc_list.c.

References alc_list::session_variables_semaphore.

Referenced by open_alc_channel().

Here is the caller graph for this function:

void destroy_list ( alc_list_t a_list  ) 

This function destroy the list.

Parameters:
a_list the list

Definition at line 270 of file alc_list.c.

References alc_list_node::data, alc_list::first_elem, lock_list(), alc_list_node::next, alc_list::session_variables_semaphore, and unlock_list().

Referenced by close_alc_channel().

Here is the call graph for this function:

Here is the caller graph for this function:

int is_empty ( const alc_list_t a_list  ) 

This function checks if the list is empty.

Parameters:
a_list the list
Returns:
1 if the list is empty, 0 if not

Definition at line 244 of file alc_list.c.

References alc_list::first_elem, lock_list(), and unlock_list().

Referenced by recv_packet().

Here is the call graph for this function:

Here is the caller graph for this function:

alc_rcv_container_t* pop_front ( alc_list_t a_list  ) 

This function returns the data from the beginning of the list.

Parameters:
a_list the list
Returns:
pointer to the data, NULL if the list is empty

Definition at line 214 of file alc_list.c.

References alc_list_node::data, alc_list::first_elem, is_empty_private(), alc_list::last_elem, lock_list(), alc_list_node::next, and unlock_list().

Here is the call graph for this function:

void push_back ( alc_list_t a_list,
alc_rcv_container_t a_data 
)

This function inserts the data to the end of the list.

Parameters:
a_list the list
a_data the data

Definition at line 168 of file alc_list.c.

References alc_list::first_elem, is_empty_private(), alc_list::last_elem, lock_list(), alc_list_node::next, prepare_insert(), and unlock_list().

Referenced by rx_socket_thread().

Here is the call graph for this function:

Here is the caller graph for this function:

void push_front ( alc_list_t a_list,
alc_rcv_container_t a_data 
)

This function inserts the data to the beginning of the list.

Parameters:
a_list the list
a_data the data

Definition at line 191 of file alc_list.c.

References alc_list::first_elem, is_empty_private(), alc_list::last_elem, lock_list(), alc_list_node::next, prepare_insert(), and unlock_list().

Here is the call graph for this function:


Generated on Fri Mar 9 20:00:08 2007 for MAD-FCL by  doxygen 1.5.0