Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

alsad_data_pipe_list.h

Go to the documentation of this file.
00001 #ifndef __ALSAD_DATA_PIPE_LIST_H
00002 #define __ALSAD_DATA_PIPE_LIST_H
00003 
00014 #include <stdio.h>
00015 #include <stdlib.h>
00016 #include <unistd.h>
00017 #include <sys/time.h>
00018 #include "alsad_net_lib.h"
00019 #include "linked_list.h"
00020 
00021 
00022 struct alsad_data_pipe_node{
00023    int closing;
00024    unsigned long long thread_byte_id;
00025    alsad_data_pipe_t *pipe;
00026 };
00027 
00028 typedef struct alsad_data_pipe_node alsad_data_pipe_node_t;
00029 
00030 
00031 struct alsad_data_pipe_list{
00032    linked_list_t *pipe_list;
00033 };
00034 
00035 typedef struct alsad_data_pipe_list alsad_data_pipe_list_t;
00036 
00037 
00038 struct alsad_data_pipe_list_send_args{
00039   int sock;
00040   int code;
00041 };
00042 
00043 typedef struct alsad_data_pipe_list_send_args alsad_data_pipe_list_send_args_t;
00044 
00045 
00046 int alsad_data_pipe_list_init(alsad_data_pipe_list_t *new_list,
00047                                                unsigned int num_data_pipes);
00048 
00049 void alsad_data_pipe_list_destroy(alsad_data_pipe_list_t *destroy_list);
00050 
00051 int alsad_data_pipe_node_init(alsad_data_pipe_node_t **new_data_pipe_node,
00052                                  alsad_data_pipe_t *new_data_pipe);
00053 
00054 void alsad_data_pipe_node_destroy(alsad_data_pipe_node_t *destroy_pipe_node);
00055                     
00056 alsad_data_pipe_node_t *alsad_data_pipe_list_insert(
00057                                          alsad_data_pipe_list_t *list,
00058                                          alsad_data_pipe_node_t *new_node);
00059 
00060 
00061 alsad_data_pipe_node_t* alsad_data_pipe_list_remove(
00062                                             alsad_data_pipe_list_t *list,
00063                                             unsigned int ident);
00064               
00065 alsad_data_pipe_node_t *alsad_data_pipe_list_find(alsad_data_pipe_list_t *list,
00066             unsigned int ident);
00067             
00068 
00069 unsigned long alsad_data_pipe_find_slowest(alsad_data_pipe_list_t *list,
00070             unsigned long global_byte_id);
00071 
00072               
00073 int alsad_data_pipe_list_send(int sock, alsad_data_pipe_list_t *list, int code);
00074   
00075 int alsad_data_pipe_node_send_pipe(void *data_pipe, void *args);
00076 
00077 int alsad_data_pipe_node_compare_equal(void *identifier, void *data_pipe_node);
00078 
00079 int alsad_data_pipe_node_compare_greater_than(void *data_pipe_node_a,
00080                                               void *data_pipe_node_b,
00081                                               void *args);
00082 
00086 #endif

Generated on Thu Dec 16 23:07:31 2004 for alsad by doxygen 1.3.6