1 /* This software was written by Dirk Engling <erdgeist@erdgeist.org>
2 It is considered beerware. Prost. Skol. Cheers or whatever.
9 /* These defines control vectors behaviour */
10 #define OT_VECTOR_MIN_MEMBERS 2
11 #define OT_VECTOR_GROW_RATIO 2
12 #define OT_VECTOR_SHRINK_THRESH 4
13 #define OT_VECTOR_SHRINK_RATIO 2
15 #define OT_PEER_BUCKET_MINCOUNT 512
16 #define OT_PEER_BUCKET_MAXCOUNT 256
24 void *binary_search( const void * const key
, const void * base
, const size_t member_count
, const size_t member_size
,
25 size_t compare_size
, int *exactmatch
);
26 void *vector_find_or_insert( ot_vector
*vector
, void *key
, size_t member_size
, size_t compare_size
, int *exactmatch
);
27 ot_peer
*vector_find_or_insert_peer( ot_vector
*vector
, ot_peer
const *peer
, size_t peer_size
, int *exactmatch
);
29 int vector_remove_peer( ot_vector
*vector
, ot_peer
const *peer
, size_t peer_size
);
30 void vector_remove_torrent( ot_vector
*vector
, ot_torrent
*match
);
33 void vector_redistribute_buckets( ot_peerlist
* peer_list
, size_t peer_size
);
34 void vector_fixup_peers( ot_vector
* vector
, size_t peer_size
);
35 void vector_clean_list( ot_vector
* vector
, int num_buckets
);