00001 #if !defined(_CHANN_H_)
00002 #define _CHANN_H_
00003
00004 #include <apr_thread_proc.h>
00005 #include <apr_thread_cond.h>
00006 #include <apr_thread_mutex.h>
00007
00008 typedef struct p2p_channel_link_s p2p_channel_link_t;
00009 struct p2p_channel_link_s {
00010 p2p_channel_t *prev;
00011 p2p_channel_t *next;
00012 };
00013
00014 struct p2p_channel_s {
00015 char *kind;
00016 unsigned int port;
00017 apr_thread_mutex_t *mutex;
00018 apr_thread_cond_t *cv;
00019 apr_thread_t *thread;
00020 p2p_destinations_t *dst;
00021 char *buf;
00022 int buflen;
00023 int ready;
00024 int done;
00025 p2p_channel_link_t link;
00026 };
00027
00028 extern p2p_channel_link_t channels;
00029 void init_channels();
00030 void signal_channel(p2p_channel_t *chann, char *body, int len);
00031 p2p_channel_t *create_channel_from_msg(char *buf);
00032
00033 #endif