paulo@0: /* paulo@0: * $Id: rx_stack.h,v 1.3 2003/09/19 00:10:30 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_RX_STACK_H_ paulo@0: #define GIFT_GT_RX_STACK_H_ paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #include "gt_gnutella.h" paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #define IO_DEBUG gt_config_get_int("io/debug=0") paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: struct gt_rx_stack; paulo@0: struct gt_node; paulo@0: struct gt_packet; paulo@0: paulo@0: typedef struct gt_rx_stack GtRxStack; paulo@0: paulo@0: typedef void (*GtRxStackHandler) (void *udata, struct gt_packet *packet); paulo@0: typedef void (*GtRxStackCleanup) (void *udata); paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: GtRxStack *gt_rx_stack_new (struct gt_node *node, TCPC *c, paulo@0: BOOL rx_inflated); paulo@0: void gt_rx_stack_free (GtRxStack *stack); paulo@0: paulo@0: void gt_rx_stack_set_handler (GtRxStack *stack, paulo@0: GtRxStackHandler handler, paulo@0: GtRxStackCleanup cleanup, paulo@0: void *udata); paulo@0: paulo@0: void gt_rx_stack_recv_start (GtRxStack *stack); paulo@0: void gt_rx_stack_recv_end (GtRxStack *stack); paulo@0: paulo@0: void gt_rx_stack_abort (GtRxStack *stack); paulo@0: paulo@0: /*****************************************************************************/ paulo@0: paulo@0: #endif /* GIFT_GT_RX_STACK_H_ */