paulo@0: /* paulo@0: * $Id: tx_stack.h,v 1.6 2004/04/17 06:07:33 hipnod Exp $ paulo@0: * paulo@0: * Copyright (C) 2003 giFT project (gift.sourceforge.net) paulo@0: * paulo@0: * This program is free software; you can redistribute it and/or modify it paulo@0: * under the terms of the GNU General Public License as published by the paulo@0: * Free Software Foundation; either version 2, or (at your option) any paulo@0: * later version. paulo@0: * paulo@0: * This program is distributed in the hope that it will be useful, but paulo@0: * WITHOUT ANY WARRANTY; without even the implied warranty of paulo@0: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU paulo@0: * General Public License for more details. paulo@0: */ paulo@0: paulo@0: #ifndef GIFT_GT_TX_STACK_H_ paulo@0: #define GIFT_GT_TX_STACK_H_ paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: typedef struct gt_tx_stack GtTxStack; paulo@0: paulo@0: typedef void (*GtTxStackCleanup) (GtTxStack *stack, void *udata); paulo@0: paulo@0: struct gt_tx_stack paulo@0: { paulo@0: struct tx_layer *layers; paulo@0: GtTxStackCleanup cleanup; paulo@0: paulo@0: TCPC *c; paulo@0: void *udata; paulo@0: paulo@0: time_t start_time; paulo@0: }; paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: GtTxStack *gt_tx_stack_new (TCPC *c, BOOL tx_deflated); paulo@0: void gt_tx_stack_free (GtTxStack *stack); paulo@0: paulo@0: void gt_tx_stack_abort (GtTxStack *stack); paulo@0: paulo@0: void gt_tx_stack_set_handler (GtTxStack *stack, paulo@0: GtTxStackCleanup cleanup, paulo@0: void *udata); paulo@0: paulo@0: BOOL gt_tx_stack_queue (GtTxStack *stack, const uint8_t *data, paulo@0: size_t len); paulo@0: paulo@0: /* used by tx_link to send data on the connection...argh, i can't paulo@0: * come up with a good interface for this */ paulo@0: int gt_tx_stack_send (GtTxStack *stack, const uint8_t *data, paulo@0: size_t len); paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #endif /* GIFT_GT_TX_STACK_H_ */