diff src/gt_query_route.h @ 0:d39e1d0d75b6

initial add
author paulo@hit-nxdomain.opendns.com
date Sat, 20 Feb 2010 21:18:28 -0800
parents
children
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/src/gt_query_route.h	Sat Feb 20 21:18:28 2010 -0800
     1.3 @@ -0,0 +1,87 @@
     1.4 +/*
     1.5 + * $Id: gt_query_route.h,v 1.12 2003/09/22 21:11:10 hipnod Exp $
     1.6 + *
     1.7 + * Copyright (C) 2001-2003 giFT project (gift.sourceforge.net)
     1.8 + *
     1.9 + * This program is free software; you can redistribute it and/or modify it
    1.10 + * under the terms of the GNU General Public License as published by the
    1.11 + * Free Software Foundation; either version 2, or (at your option) any
    1.12 + * later version.
    1.13 + *
    1.14 + * This program is distributed in the hope that it will be useful, but
    1.15 + * WITHOUT ANY WARRANTY; without even the implied warranty of
    1.16 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    1.17 + * General Public License for more details.
    1.18 + */
    1.19 +
    1.20 +#ifndef __GT_QUERY_ROUTE_H__
    1.21 +#define __GT_QUERY_ROUTE_H__
    1.22 +
    1.23 +/*****************************************************************************/
    1.24 +
    1.25 +/*
    1.26 + * Delimiters for words in the query-router protocol hash function.
    1.27 + * This is what LimeWire uses.
    1.28 + */
    1.29 +#define QRP_DELIMITERS       " -._+/*()\\/"
    1.30 +
    1.31 +/*****************************************************************************/
    1.32 +
    1.33 +struct gt_packet;
    1.34 +struct gt_zlib_stream;
    1.35 +
    1.36 +typedef struct gt_query_router GtQueryRouter;
    1.37 +typedef struct gt_query_patch  GtQueryPatch;
    1.38 +
    1.39 +struct gt_query_patch
    1.40 +{
    1.41 +	int       seq_size;
    1.42 +	int       seq_num;
    1.43 +	int       compressed;
    1.44 +
    1.45 +	/* where the last patch left off in the table */
    1.46 +	int       table_pos;
    1.47 +
    1.48 +	struct gt_zlib_stream  *stream;
    1.49 +};
    1.50 +
    1.51 +struct gt_query_router
    1.52 +{
    1.53 +	char          *table;
    1.54 +	size_t         size;
    1.55 +
    1.56 +	GtQueryPatch  *patch;
    1.57 +};
    1.58 +
    1.59 +/*****************************************************************************/
    1.60 +
    1.61 +uint32_t          gt_query_router_hash_str (char *words, size_t bits);
    1.62 +
    1.63 +/*****************************************************************************/
    1.64 +
    1.65 +void              gt_query_router_self_init    (void);
    1.66 +void              gt_query_router_self_destroy (void);
    1.67 +uint8_t          *gt_query_router_self         (size_t *size, int *version);
    1.68 +void              gt_query_router_self_add     (Share *share);
    1.69 +void              gt_query_router_self_remove  (Share *share);
    1.70 +void              gt_query_router_self_sync    (BOOL begin);
    1.71 +
    1.72 +/*****************************************************************************/
    1.73 +
    1.74 +GtQueryRouter *gt_query_router_new    (size_t size, int infinity);
    1.75 +void           gt_query_router_free   (GtQueryRouter *router);
    1.76 +
    1.77 +void           gt_query_router_update (GtQueryRouter *router, 
    1.78 +                                       size_t seq_num, size_t seq_size, 
    1.79 +                                       int compressed, int bits, 
    1.80 +                                       unsigned char *zdata, size_t size);
    1.81 +
    1.82 +
    1.83 +/*****************************************************************************/
    1.84 +
    1.85 +void    query_route_table_submit   (TCPC *c);
    1.86 +void    query_route_table_reset    (TCPC *c);
    1.87 +
    1.88 +/*****************************************************************************/
    1.89 +
    1.90 +#endif /* __GT_QUERY_ROUTE_H__ */