rev |
line source |
paulo@0
|
1 /*
|
paulo@0
|
2 * $Id: tx_stack.h,v 1.6 2004/04/17 06:07:33 hipnod Exp $
|
paulo@0
|
3 *
|
paulo@0
|
4 * Copyright (C) 2003 giFT project (gift.sourceforge.net)
|
paulo@0
|
5 *
|
paulo@0
|
6 * This program is free software; you can redistribute it and/or modify it
|
paulo@0
|
7 * under the terms of the GNU General Public License as published by the
|
paulo@0
|
8 * Free Software Foundation; either version 2, or (at your option) any
|
paulo@0
|
9 * later version.
|
paulo@0
|
10 *
|
paulo@0
|
11 * This program is distributed in the hope that it will be useful, but
|
paulo@0
|
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
|
paulo@0
|
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
paulo@0
|
14 * General Public License for more details.
|
paulo@0
|
15 */
|
paulo@0
|
16
|
paulo@0
|
17 #ifndef GIFT_GT_TX_STACK_H_
|
paulo@0
|
18 #define GIFT_GT_TX_STACK_H_
|
paulo@0
|
19
|
paulo@0
|
20 /*****************************************************************************/
|
paulo@0
|
21
|
paulo@0
|
22 typedef struct gt_tx_stack GtTxStack;
|
paulo@0
|
23
|
paulo@0
|
24 typedef void (*GtTxStackCleanup) (GtTxStack *stack, void *udata);
|
paulo@0
|
25
|
paulo@0
|
26 struct gt_tx_stack
|
paulo@0
|
27 {
|
paulo@0
|
28 struct tx_layer *layers;
|
paulo@0
|
29 GtTxStackCleanup cleanup;
|
paulo@0
|
30
|
paulo@0
|
31 TCPC *c;
|
paulo@0
|
32 void *udata;
|
paulo@0
|
33
|
paulo@0
|
34 time_t start_time;
|
paulo@0
|
35 };
|
paulo@0
|
36
|
paulo@0
|
37 /*****************************************************************************/
|
paulo@0
|
38
|
paulo@0
|
39 GtTxStack *gt_tx_stack_new (TCPC *c, BOOL tx_deflated);
|
paulo@0
|
40 void gt_tx_stack_free (GtTxStack *stack);
|
paulo@0
|
41
|
paulo@0
|
42 void gt_tx_stack_abort (GtTxStack *stack);
|
paulo@0
|
43
|
paulo@0
|
44 void gt_tx_stack_set_handler (GtTxStack *stack,
|
paulo@0
|
45 GtTxStackCleanup cleanup,
|
paulo@0
|
46 void *udata);
|
paulo@0
|
47
|
paulo@0
|
48 BOOL gt_tx_stack_queue (GtTxStack *stack, const uint8_t *data,
|
paulo@0
|
49 size_t len);
|
paulo@0
|
50
|
paulo@0
|
51 /* used by tx_link to send data on the connection...argh, i can't
|
paulo@0
|
52 * come up with a good interface for this */
|
paulo@0
|
53 int gt_tx_stack_send (GtTxStack *stack, const uint8_t *data,
|
paulo@0
|
54 size_t len);
|
paulo@0
|
55
|
paulo@0
|
56 /*****************************************************************************/
|
paulo@0
|
57
|
paulo@0
|
58 #endif /* GIFT_GT_TX_STACK_H_ */
|