alc_session.c File Reference

ALC session. More...

#include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <string.h>
#include <assert.h>
#include <math.h>
#include <process.h>
#include <sys/timeb.h>
#include "alc_session.h"
#include "mad_rlc.h"
#include "alc_rx.h"
#include "alc_tx.h"
#include "transport.h"
#include "alc_channel.h"

Include dependency graph for alc_session.c:

Go to the source code of this file.

Defines

#define ABSOLUTE_PATH   1

Functions

void lock_session ()
void unlock_session ()
int open_alc_session (alc_arguments_t *a)
void close_alc_session (int s_id)
alc_session_tget_alc_session (int s_id)
int add_alc_channel (int s_id, const char *port, const char *addr, const char *intface, const char *intface_name)
void remove_alc_channels (int s_id)
trans_obj_tget_session_obj_list (int s_id)
trans_obj_tget_session_fdt_list (int s_id)
wanted_obj_tget_session_wanted_obj_list (int s_id)
int get_session_state (int s_id)
void set_session_state (int s_id, enum alc_session_states state)
void set_all_sessions_state (enum alc_session_states state)
int get_session_a_flag_usage (int s_id)
void set_session_a_flag_usage (int s_id)
unsigned int get_fdt_instance_id (int s_id)
void set_fdt_instance_id (int s_id, unsigned int instance_id)
void set_fdt_instance_parsed (int s_id)
unsigned long long get_session_sent_bytes (int s_id)
void set_session_sent_bytes (int s_id, unsigned long long sent_bytes)
void add_session_sent_bytes (int s_id, unsigned int sent_bytes)
unsigned long long get_object_sent_bytes (int s_id)
void set_object_sent_bytes (int s_id, unsigned long long sent_bytes)
void add_object_sent_bytes (int s_id, unsigned int sent_bytes)
double get_object_last_print_tx_percent (int s_id)
void set_object_last_print_tx_percent (int s_id, double last_print_tx_percent)
void set_session_tx_toi (int s_id, unsigned long long toi)
unsigned long long get_session_tx_toi (int s_id)
void update_session_tx_rate (int s_id, int base_tx_rate)
wanted_obj_tget_wanted_object (alc_session_t *s, unsigned long long toi)
int set_wanted_object (int s_id, unsigned long long toi, unsigned long long transfer_len, unsigned short es_len, unsigned int max_sb_len, int fec_inst_id, short fec_enc_id, unsigned short max_nb_of_es, unsigned char content_enc_algo, unsigned char finite_field, unsigned char nb_of_es_per_group)
void remove_wanted_object (int s_id, unsigned long long toi)
BOOL is_received_instance (alc_session_t *s, unsigned int fdt_instance_id)
int set_received_instance (alc_session_t *s, unsigned int fdt_instance_id)
char * get_session_basedir (int s_id)
void initialize_session_handler ()
void release_session_handler ()

Variables

alc_sessionalc_session_list [MAX_ALC_SESSIONS]
int nb_alc_session = 0
RTL_CRITICAL_SECTION session_variables_semaphore


Detailed Description

ALC session.

Author
peltotal
Date
2007/02/28 08:58:00
Revision
1.103

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_session.c.


Define Documentation

#define ABSOLUTE_PATH   1

Use absolute path with base directory.

Definition at line 60 of file alc_session.c.


Function Documentation

int add_alc_channel ( int  s_id,
const char *  port,
const char *  addr,
const char *  intface,
const char *  intface_name 
)

This function adds channel to the session.

Parameters:
s_id session identifier
port pointer to the port string
addr pointer to the address string
intface pointer to the interface string
intface_name pointer to the interface name string
Returns:
identifier for the created channel in success, -1 in error cases

Definition at line 432 of file alc_session.c.

References alc_session_list, alc_session::def_tx_rate, lock_session(), alc_session::max_channel, alc_session::nb_channel, open_alc_channel(), and unlock_session().

Referenced by flute_file_repair(), flute_receiver_report(), flute_sender(), mad_rlc_process_rx_sp(), and repair_sender().

Here is the call graph for this function:

Here is the caller graph for this function:

void add_object_sent_bytes ( int  s_id,
unsigned int  sent_bytes 
)

This function adds sent bytes for the object.

Parameters:
s_id session identifier
sent_bytes bytes sent

Definition at line 625 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::obj_sent_bytes, and unlock_session().

Here is the call graph for this function:

void add_session_sent_bytes ( int  s_id,
unsigned int  sent_bytes 
)

This function adds sent bytes in session.

Parameters:
s_id session identifier
sent_bytes bytes sent

Definition at line 601 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::sent_bytes, and unlock_session().

Referenced by send_session_close_packet(), and send_unit().

Here is the call graph for this function:

Here is the caller graph for this function:

void close_alc_session ( int  s_id  ) 

This function closes the session.

Parameters:
s_id session identifier

Definition at line 301 of file alc_session.c.

References alc_session_list, alc_session::ch_list, close_alc_channel(), alc_session::handle_rx_thread, lock_session(), alc_session::max_channel, alc_session::rx_thread_id, SClosed, and alc_session::state.

Referenced by flute_file_repair(), flute_receiver_report(), flute_sender(), and repair_sender().

Here is the call graph for this function:

Here is the caller graph for this function:

alc_session_t* get_alc_session ( int  s_id  ) 

This function returns session from the alc_session_list.

Parameters:
s_id session identifier
Returns:
pointer to session or NULL if session does not exist

Definition at line 416 of file alc_session.c.

References alc_session_list, lock_session(), MAX_ALC_SESSIONS, and unlock_session().

Referenced by alc_recv(), alc_recv2(), alc_recv3(), alc_send(), create_fdt_instance(), encode_directory(), encode_file(), fdt_recv(), flute_file_repair(), flute_receiver_report(), flute_sender(), generate_fdt(), http_file_repair(), name_incomplete_objects(), print_receiver_info(), print_sender_info(), send_file(), send_session_close_packet(), and sender_in_fdt_based_mode().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned int get_fdt_instance_id ( int  s_id  ) 

This function returns session's current FDT instance id.

Parameters:
s_id session identifier
Returns:
session's FDT instance id

Definition at line 561 of file alc_session.c.

References alc_session_list, alc_session::fdt_instance_id, lock_session(), and unlock_session().

Referenced by fdtbasedsend(), and send_fdt_instance().

Here is the call graph for this function:

Here is the caller graph for this function:

double get_object_last_print_tx_percent ( int  s_id  ) 

This function returns last printed percent for the object.

Parameters:
s_id session identifier
Returns:
last printed percent

Definition at line 632 of file alc_session.c.

References alc_session_list, alc_session::last_print_tx_percent, lock_session(), and unlock_session().

Referenced by send_file().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long long get_object_sent_bytes ( int  s_id  ) 

This function returns the number of bytes sent for the object.

Parameters:
s_id session identifier
Returns:
number of bytes sent for the object since latest zeroing

Definition at line 608 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::obj_sent_bytes, and unlock_session().

Referenced by print_sender_info(), and send_file().

Here is the call graph for this function:

Here is the caller graph for this function:

int get_session_a_flag_usage ( int  s_id  ) 

This function returns the status of A flag usage in the session.

Parameters:
s_id session identifier
Returns:
the state of A flag usage (0 = no, 1 = yes)

Definition at line 544 of file alc_session.c.

References alc_session::a_flag, alc_session_list, lock_session(), and unlock_session().

Here is the call graph for this function:

char* get_session_basedir ( int  s_id  ) 

This function returns session's base directory.

Parameters:
s_id session identifier
Returns:
pointer to base directory

Definition at line 892 of file alc_session.c.

References alc_session_list, alc_session::base_dir, lock_session(), and unlock_session().

Referenced by fdtbasedrecv(), http_file_repair(), name_incomplete_objects(), and recvfile().

Here is the call graph for this function:

Here is the caller graph for this function:

trans_obj_t* get_session_fdt_list ( int  s_id  ) 

This function returns session fdt list.

Parameters:
s_id session identifier
Returns:
pointer to the fdt list, NULL in error cases

Definition at line 486 of file alc_session.c.

References alc_session_list, alc_session::fdt_list, lock_session(), and unlock_session().

Referenced by flute_file_repair().

Here is the call graph for this function:

Here is the caller graph for this function:

trans_obj_t* get_session_obj_list ( int  s_id  ) 

This function returns session object list.

Parameters:
s_id session identifier
Returns:
pointer to the object list, NULL in error cases

Definition at line 475 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::obj_list, and unlock_session().

Referenced by build_report(), flute_file_repair(), http_file_repair(), and name_incomplete_objects().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long long get_session_sent_bytes ( int  s_id  ) 

This function returns the number of bytes sent in the session.

Parameters:
s_id session identifier
Returns:
number of bytes sent in the session since latest zeroing

Definition at line 584 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::sent_bytes, and unlock_session().

Referenced by flute_sender().

Here is the call graph for this function:

Here is the caller graph for this function:

int get_session_state ( int  s_id  ) 

This function returns the state of session.

Parameters:
s_id session identifier
Returns:
the state of the session, -1 if the session does not exist anymore

Definition at line 508 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::state, and unlock_session().

Referenced by fdt_thread(), fdtbasedrecv(), flute_file_repair(), flute_receiver_report(), receiver_file_table_output_thread(), receiver_in_fdt_based_mode(), receiver_in_ui_mode(), send_fdt_instance(), and sender_file_table_output_thread().

Here is the call graph for this function:

Here is the caller graph for this function:

unsigned long long get_session_tx_toi ( int  s_id  ) 

This function returns identifier for the object which sender is currently sending.

Parameters:
s_id session identifier
Returns:
transport object identifier for the object which sender is currently sending

Definition at line 655 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::tx_toi, and unlock_session().

Referenced by print_sender_info().

Here is the call graph for this function:

Here is the caller graph for this function:

wanted_obj_t* get_session_wanted_obj_list ( int  s_id  ) 

This function returns session wanted object list.

Parameters:
s_id session identifier
Returns:
pointer to the wanted object list, NULL in error cases

Definition at line 497 of file alc_session.c.

References alc_session_list, lock_session(), unlock_session(), and alc_session::wanted_obj_list.

Referenced by flute_file_repair().

Here is the call graph for this function:

Here is the caller graph for this function:

wanted_obj_t* get_wanted_object ( alc_session_t s,
unsigned long long  toi 
)

This function checks if object identified with TOI is wanted and returns pointer to the wanted object structure.

Parameters:
s pointer to the session
toi transport object identifier to be checked
Returns:
pointer to wanted object structure in success, NULL otherwise

Definition at line 692 of file alc_session.c.

References lock_session(), wanted_obj::next, wanted_obj::toi, unlock_session(), and alc_session::wanted_obj_list.

Referenced by analyze_packet().

Here is the call graph for this function:

Here is the caller graph for this function:

void initialize_session_handler (  ) 

This function initializes session handler.

Definition at line 907 of file alc_session.c.

References session_variables_semaphore.

Referenced by start_up_flute().

Here is the caller graph for this function:

BOOL is_received_instance ( alc_session_t s,
unsigned int  fdt_instance_id 
)

This function checks if FDT Instance is already received

Parameters:
s pointer to the session
fdt_instance_id FDT instance id to be checked
Returns:
TRUE if FDT instance is already received, FALSE otherwise

Definition at line 825 of file alc_session.c.

References FALSE, rx_fdt_instance::fdt_instance_id, rx_fdt_instance::next, alc_session::rx_fdt_instance_list, and TRUE.

Referenced by analyze_packet().

Here is the caller graph for this function:

void lock_session (  ) 

This is a private function, which locks the session.

Definition at line 80 of file alc_session.c.

References session_variables_semaphore.

Referenced by add_alc_channel(), add_object_sent_bytes(), add_session_sent_bytes(), close_alc_session(), get_alc_session(), get_fdt_instance_id(), get_object_last_print_tx_percent(), get_object_sent_bytes(), get_session_a_flag_usage(), get_session_basedir(), get_session_fdt_list(), get_session_obj_list(), get_session_sent_bytes(), get_session_state(), get_session_tx_toi(), get_session_wanted_obj_list(), get_wanted_object(), open_alc_session(), remove_alc_channels(), remove_wanted_object(), set_all_sessions_state(), set_fdt_instance_id(), set_fdt_instance_parsed(), set_object_last_print_tx_percent(), set_object_sent_bytes(), set_received_instance(), set_session_a_flag_usage(), set_session_sent_bytes(), set_session_state(), set_session_tx_toi(), set_wanted_object(), and update_session_tx_rate().

Here is the caller graph for this function:

int open_alc_session ( alc_arguments_t a  ) 

This function creates and initializes new session.

Parameters:
a ALC specific commandline arguments
Returns:
identifier for the created session in success, -1 otherwise

Definition at line 101 of file alc_session.c.

References alc_session::a_flag, alc_session::accept_expired_fdt_inst, alc_arguments::accept_expired_fdt_inst, alc_session::addr_family, alc_arguments::addr_family, alc_session::addr_type, alc_arguments::addr_type, alc_init(), alc_session_list, alc_session::base_dir, alc_arguments::base_dir, alc_session::calculate_session_size, alc_arguments::calculate_session_size, alc_session::cc_id, alc_arguments::cc_id, alc_session::def_eslen, alc_session::def_fec_enc_id, alc_session::def_fec_inst_id, alc_session::def_fec_ratio, alc_session::def_max_sblen, alc_session::def_ttl, alc_session::def_tx_rate, alc_session::encode_content, alc_arguments::encode_content, alc_arguments::es_len, alc_session::fdt_instance_id, alc_session::fdt_list, alc_arguments::fec_enc_id, alc_arguments::fec_inst_id, alc_arguments::fec_ratio, alc_session::first_unit_in_loop, ftime, alc_session::ftimestarttime, alc_session::half_word, alc_arguments::half_word, alc_session::handle_rx_thread, alc_session::handle_tx_thread, init_mad_rlc(), alc_session::last_print_tx_percent, lib_init, lock_session(), alc_session::loss_ratio1, alc_arguments::loss_ratio1, alc_session::loss_ratio2, alc_arguments::loss_ratio2, MAX_ALC_SESSIONS, alc_session::max_channel, MAX_PATH_LENGTH, alc_arguments::max_sb_len, alc_session::mode, alc_arguments::mode, nb_alc_session, alc_session::nb_channel, alc_arguments::nb_channel, alc_session::nb_ready_channel, alc_session::nb_sending_channel, Null, alc_session::obj_list, alc_session::obj_sent_bytes, alc_session::optimize_tx_rate, alc_arguments::optimize_tx_rate, RECEIVER, RLC, alc_session::rx_fdt_instance_list, alc_session::rx_memory_mode, alc_arguments::rx_memory_mode, rx_thread(), alc_session::rx_thread_id, alc_session::s_id, SActive, SENDER, alc_session::sent_bytes, alc_session::simul_losses, alc_arguments::simul_losses, alc_session::src_addr, alc_arguments::src_addr, alc_session::ssm, alc_arguments::start_time, alc_session::starttime, alc_session::state, alc_arguments::stop_time, alc_session::stoptime, timeb, TRUE, alc_session::tsi, alc_arguments::tsi, alc_arguments::ttl, alc_session::tx_queue_begin, alc_session::tx_queue_end, alc_session::tx_queue_size, alc_arguments::tx_rate, tx_thread(), alc_session::tx_thread_id, unlock_session(), alc_session::use_fec_oti_ext_hdr, alc_arguments::use_fec_oti_ext_hdr, alc_arguments::use_ssm, alc_session::verbosity, alc_arguments::verbosity, and alc_session::wanted_obj_list.

Referenced by flute_file_repair(), flute_receiver_report(), flute_sender(), and repair_sender().

Here is the call graph for this function:

Here is the caller graph for this function:

void release_session_handler (  ) 

This function releases session handler.

Definition at line 914 of file alc_session.c.

References session_variables_semaphore.

Referenced by shut_down_flute(), and shut_down_flute2().

Here is the caller graph for this function:

void remove_alc_channels ( int  s_id  ) 

This function removes channels from session.

Parameters:
s_id session identifier

Definition at line 455 of file alc_session.c.

References alc_session_list, alc_session::ch_list, close_alc_channel(), lock_session(), and alc_session::max_channel.

Referenced by flute_receiver_report().

Here is the call graph for this function:

Here is the caller graph for this function:

void remove_wanted_object ( int  s_id,
unsigned long long  toi 
)

This function removes wanted object identified with toi from the session.

Parameters:
s_id session identifier
toi transport object identifier

Definition at line 789 of file alc_session.c.

References alc_session_list, lock_session(), wanted_obj::next, wanted_obj::prev, wanted_obj::toi, unlock_session(), and alc_session::wanted_obj_list.

Referenced by alc_recv(), alc_recv2(), and alc_recv3().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_all_sessions_state ( enum alc_session_states  state  ) 

This function sets state for all sessions.

Parameters:
state new state for all sessions

Definition at line 529 of file alc_session.c.

References alc_session_list, lock_session(), MAX_ALC_SESSIONS, and unlock_session().

Referenced by set_all_flute_sessions_state().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_fdt_instance_id ( int  s_id,
unsigned int  instance_id 
)

This function sets session's FDT instance id.

Parameters:
s_id session identifier
instance_id FDT instance id to be set

Definition at line 572 of file alc_session.c.

References alc_session_list, alc_session::fdt_instance_id, lock_session(), and unlock_session().

Referenced by fdtbasedsend().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_fdt_instance_parsed ( int  s_id  ) 

This function sets FDT instance parsed.

Parameters:
s_id session identifier

Definition at line 578 of file alc_session.c.

References alc_session_list, FALSE, lock_session(), unlock_session(), and alc_session::waiting_fdt_instance.

Here is the call graph for this function:

void set_object_last_print_tx_percent ( int  s_id,
double  last_print_tx_percent 
)

This function sets last printed percent for the object.

Parameters:
s_id session identifier
last_print_tx_percent printed percent

Definition at line 642 of file alc_session.c.

References alc_session_list, alc_session::last_print_tx_percent, lock_session(), and unlock_session().

Referenced by send_file(), and send_repair_data().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_object_sent_bytes ( int  s_id,
unsigned long long  sent_bytes 
)

This function sets number of bytes sent for the current object.

Parameters:
s_id session identifier
sent_bytes bytes sent

Definition at line 618 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::obj_sent_bytes, and unlock_session().

Referenced by send_fdt_instance(), send_file(), and send_repair_data().

Here is the call graph for this function:

Here is the caller graph for this function:

int set_received_instance ( alc_session_t s,
unsigned int  fdt_instance_id 
)

This function sets FDT Instance to the received list.

Parameters:
s pointer to the session
fdt_instance_id FDT instance id to be set
Returns:
0 in success, -1 otherwise

Definition at line 841 of file alc_session.c.

References rx_fdt_instance::fdt_instance_id, lock_session(), rx_fdt_instance::next, rx_fdt_instance::prev, alc_session::rx_fdt_instance_list, and unlock_session().

Referenced by fdt_recv().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_session_a_flag_usage ( int  s_id  ) 

This function sets the A flag usage in session.

Parameters:
s_id session identifier

Definition at line 554 of file alc_session.c.

References alc_session::a_flag, alc_session_list, lock_session(), and unlock_session().

Referenced by repair_sender_in_fdt_based_mode().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_session_sent_bytes ( int  s_id,
unsigned long long  sent_bytes 
)

This function sets the number of bytes sent in the session.

Parameters:
s_id session identifier
sent_bytes bytes sent

Definition at line 594 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::sent_bytes, and unlock_session().

Here is the call graph for this function:

void set_session_state ( int  s_id,
enum alc_session_states  state 
)

This function sets state of session.

Parameters:
s_id session identifier
state new state for the session

Definition at line 523 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::state, and unlock_session().

Referenced by analyze_packet(), fdtbasedsend(), flute_file_repair(), flute_receiver_report(), flute_sender(), repair_sender_in_fdt_based_mode(), sender_in_fdt_based_mode(), and set_flute_session_state().

Here is the call graph for this function:

Here is the caller graph for this function:

void set_session_tx_toi ( int  s_id,
unsigned long long  toi 
)

This function sets transport object which sender is currently sending.

Parameters:
s_id session identifier
toi transport object identifier for the object which sender is currently sending

Definition at line 648 of file alc_session.c.

References alc_session_list, lock_session(), alc_session::tx_toi, and unlock_session().

Referenced by send_file().

Here is the call graph for this function:

Here is the caller graph for this function:

int set_wanted_object ( int  s_id,
unsigned long long  toi,
unsigned long long  transfer_len,
unsigned short  es_len,
unsigned int  max_sb_len,
int  fec_inst_id,
short  fec_enc_id,
unsigned short  max_nb_of_enc_symb,
unsigned char  content_enc_algo,
unsigned char  finite_field,
unsigned char  nb_of_es_per_group 
)

This function set object wanted from the session.

Parameters:
s_id session identifier
toi transport object identifier
transfer_len transport object length
es_len encoding symbol length
max_sb_len maximum source block length
fec_inst_id FEC instance id
fec_enc_id FEC encoding id
max_nb_of_enc_symb maximum number of encoding symbols
content_enc_algo content encoding algorithm
finite_field finite field parameter with new RS FEC
nb_of_es_per_group number of encoding symbols per FLUTE packet
content_len the size of file corresponding this transport object
file_uri file URI for the file corresponding this transport object
Returns:
0 in success, -1 otherwise

Definition at line 712 of file alc_session.c.

References alc_session_list, wanted_obj::content_enc_algo, wanted_obj::es_len, wanted_obj::fec_enc_id, wanted_obj::fec_inst_id, wanted_obj::finite_field, lock_session(), wanted_obj::max_nb_of_es, wanted_obj::max_sb_len, wanted_obj::nb_of_es_per_group, wanted_obj::next, wanted_obj::prev, wanted_obj::toi, wanted_obj::transfer_len, unlock_session(), and alc_session::wanted_obj_list.

Referenced by fdt_thread(), fdtbasedrecv(), receiver_in_object_mode(), and receiver_in_ui_mode().

Here is the call graph for this function:

Here is the caller graph for this function:

void unlock_session (  ) 

This is a private function, which unlocks the session.

Definition at line 93 of file alc_session.c.

References session_variables_semaphore.

Referenced by add_alc_channel(), add_object_sent_bytes(), add_session_sent_bytes(), get_alc_session(), get_fdt_instance_id(), get_object_last_print_tx_percent(), get_object_sent_bytes(), get_session_a_flag_usage(), get_session_basedir(), get_session_fdt_list(), get_session_obj_list(), get_session_sent_bytes(), get_session_state(), get_session_tx_toi(), get_session_wanted_obj_list(), get_wanted_object(), open_alc_session(), remove_wanted_object(), set_all_sessions_state(), set_fdt_instance_id(), set_fdt_instance_parsed(), set_object_last_print_tx_percent(), set_object_sent_bytes(), set_received_instance(), set_session_a_flag_usage(), set_session_sent_bytes(), set_session_state(), set_session_tx_toi(), and set_wanted_object().

Here is the caller graph for this function:

void update_session_tx_rate ( int  s_id,
int  base_tx_rate 
)

This function sets state of session.

Parameters:
s_id session identifier
base_tx_rate new base tx rate for the session

Definition at line 666 of file alc_session.c.

References alc_session_list, alc_channel::ch_id, alc_session::ch_list, lock_session(), alc_session::max_channel, alc_channel::nb_tx_units, and alc_channel::tx_rate.

Referenced by set_flute_session_base_rate().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

struct alc_session* alc_session_list[MAX_ALC_SESSIONS]

List which contains all ALC sessions

Definition at line 62 of file alc_session.c.

Referenced by add_alc_channel(), add_object_sent_bytes(), add_session_sent_bytes(), close_alc_session(), get_alc_session(), get_fdt_instance_id(), get_object_last_print_tx_percent(), get_object_sent_bytes(), get_session_a_flag_usage(), get_session_basedir(), get_session_fdt_list(), get_session_obj_list(), get_session_sent_bytes(), get_session_state(), get_session_tx_toi(), get_session_wanted_obj_list(), open_alc_session(), remove_alc_channels(), remove_wanted_object(), set_all_sessions_state(), set_fdt_instance_id(), set_fdt_instance_parsed(), set_object_last_print_tx_percent(), set_object_sent_bytes(), set_session_a_flag_usage(), set_session_sent_bytes(), set_session_state(), set_session_tx_toi(), set_wanted_object(), and update_session_tx_rate().

int nb_alc_session = 0

Number of ALC sessions

Definition at line 63 of file alc_session.c.

Referenced by open_alc_session().

RTL_CRITICAL_SECTION session_variables_semaphore

Global variables semaphore

Definition at line 70 of file alc_session.c.

Referenced by initialize_session_handler(), lock_session(), release_session_handler(), and unlock_session().


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