Changes in protocols/ft.h [dce3903:2c2df7d]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/ft.h
rdce3903 r2c2df7d 27 27 #define _FT_H 28 28 29 /*30 * One buffer is needed for each transfer. The receiver stores a message31 * in it and gives it to the sender. The sender will stall the receiver32 * till the buffer has been sent out.33 */34 #define FT_BUFFER_SIZE 204835 36 29 typedef enum { 37 30 FT_STATUS_LISTENING = 1, 38 FT_STATUS_TRANSFER RING = 2,31 FT_STATUS_TRANSFERING = 2, 39 32 FT_STATUS_FINISHED = 4, 40 FT_STATUS_CANCELED = 8, 41 FT_STATUS_CONNECTING = 16 33 FT_STATUS_CANCELED = 8 42 34 } file_status_t; 43 35 … … 69 61 */ 70 62 typedef struct file_transfer { 71 72 /* Are we sending something? */73 int sending;74 75 63 /* 76 64 * The current status of this file transfer. … … 138 126 139 127 /* 140 * called by the sending side to indicate that it is writable. 141 * The callee should check if data is available and call the 142 * function(as seen below) if that is the case. 128 * If set, called when the transfer queue is running empty and 129 * more data can be added. 143 130 */ 144 gboolean (*write_request) ( struct file_transfer *file ); 145 146 /* 147 * When sending files, protocols register this function to receive data. 148 * This should only be called once after write_request is called. The caller 149 * should not read more data until write_request is called again. This technique 150 * avoids buffering. 151 */ 152 gboolean (*write) (struct file_transfer *file, char *buffer, unsigned int len ); 153 154 /* The send buffer associated with this transfer. 155 * Since receivers always wait for a write_request call one is enough. 156 */ 157 char buffer[FT_BUFFER_SIZE]; 131 void (*out_of_data) ( struct file_transfer *file ); 158 132 159 133 } file_transfer_t; … … 170 144 void imcb_file_canceled( file_transfer_t *file, char *reason ); 171 145 172 gboolean imcb_file_recv_start( file_transfer_t *ft ); 146 /* 147 * The given buffer is queued for transfer and MUST NOT be freed by the caller. 148 * When the method returns false the caller should not invoke this method again 149 * until out_of_data has been called. 150 */ 151 gboolean imcb_file_write( file_transfer_t *file, gpointer data, size_t data_size ); 152 173 153 #endif
Note: See TracChangeset
for help on using the changeset viewer.