00001 #ifndef _XFREADER_H 00002 #define _XFREADER_H 00003 00004 #include "xfer.h" 00005 00022 #ifdef __cplusplus 00023 extern "C" { 00024 #endif 00025 00033 typedef struct xfreader_s xfreader_t; 00034 00036 00043 typedef int (*XFREADER_MSG_HOOK) ( xfreader_t *preader, xf_instance_t *pinst ); 00044 00046 00051 typedef int (*XFREADER_EXIT_HOOK) ( xfreader_t *preader ); 00052 00054 00060 int xfreader_init(void); 00061 00063 00072 xfreader_t *xfreader_new( xf_refl_t **pprefl, int fd, char *info ); 00073 00075 00082 int xfreader_setuserarg( xfreader_t *preader, void *puserarg ); 00083 00085 00090 void *xfreader_getuserarg( xfreader_t *preader ); 00091 00093 00098 xf_t *xfreader_getxfer( xfreader_t *preader ); 00099 00101 00117 int xfreader_add( xf_refl_t *prefl, XFREADER_MSG_HOOK msg_hook ); 00118 00120 00128 int xfreader_setexithook( xfreader_t *preader, XFREADER_EXIT_HOOK exit_hook ); 00129 00131 00137 XFREADER_EXIT_HOOK xfreader_getexithook( xfreader_t *preader ); 00138 00140 00148 int xfreader_kick( xfreader_t *preader ); 00149 00151 00156 int xfreader_free( xfreader_t *preader ); 00157 00161 #ifdef __cplusplus 00162 } 00163 #endif 00164 00165 #endif 00166