source: branches/encryption/libtransmission/peer-mgr.h @ 2989

Last change on this file since 2989 was 2989, checked in by charles, 15 years ago

update the request block array after the recheck finishes, so that we don't re-ask for blocks we've got

  • Property svn:keywords set to Date Rev Author Id
File size: 3.7 KB
Line 
1/*
2 * This file Copyright (C) 2007 Charles Kerr <charles@rebelbase.com>
3 *
4 * This file is licensed by the GPL version 2.  Works owned by the
5 * Transmission project are granted a special exemption to clause 2(b)
6 * so that the bulk of its code can remain under the MIT license.
7 * This exemption does not extend to derived works not owned by
8 * the Transmission project.
9 *
10 * $Id: peer-mgr.h 2989 2007-09-09 00:29:59Z charles $
11 */
12
13#ifndef TR_PEER_MGR_H
14#define TR_PEER_MGR_H
15
16#include <inttypes.h> /* uint16_t */
17#include <arpa/inet.h> /* struct in_addr */
18
19struct in_addr;
20struct tr_handle;
21struct tr_peer_stat;
22struct tr_torrent;
23typedef struct tr_peerMgr tr_peerMgr;
24
25typedef struct tr_pex
26{
27    struct in_addr in_addr;
28    uint16_t port;
29    uint8_t flags;
30}
31tr_pex;
32
33int tr_pexCompare( const void * a, const void * b );
34
35tr_peerMgr* tr_peerMgrNew( struct tr_handle * );
36
37void tr_peerMgrFree( tr_peerMgr * manager );
38
39int tr_peerMgrIsAcceptingConnections( const tr_peerMgr * manager );
40
41void tr_peerMgrAddIncoming( tr_peerMgr      * manager,
42                            struct in_addr  * addr,
43                            int               socket );
44
45void tr_peerMgrAddPeers( tr_peerMgr     * manager,
46                         const uint8_t  * torrentHash,
47                         int              from,
48                         const uint8_t  * peerCompact,
49                         int              peerCount );
50
51void tr_peerMgrAddPex( tr_peerMgr     * manager,
52                       const uint8_t  * torrentHash,
53                       int              from,
54                       const tr_pex   * pex,
55                       int              pexCount );
56
57void tr_peerMgrSetBlame( tr_peerMgr     * manager,
58                         const uint8_t  * torrentHash,
59                         int              pieceIndex,
60                         int              success );
61
62int tr_peerMgrGetPeers( tr_peerMgr      * manager,
63                        const uint8_t   * torrentHash,
64                        tr_pex         ** setme_pex );
65
66void tr_peerMgrStartTorrent( tr_peerMgr     * manager,
67                             const uint8_t  * torrentHash );
68
69void tr_peerMgrStopTorrent( tr_peerMgr     * manager,
70                            const uint8_t  * torrentHash );
71
72void tr_peerMgrAddTorrent( tr_peerMgr         * manager,
73                           struct tr_torrent  * tor );
74
75void tr_peerMgrUpdateCompletion( tr_peerMgr     * manager,
76                                 const uint8_t  * torrentHash );
77
78
79void tr_peerMgrRemoveTorrent( tr_peerMgr     * manager,
80                               const uint8_t  * torrentHash );
81
82void tr_peerMgrDisablePex( tr_peerMgr    * manager, 
83                           const uint8_t * torrentHash,
84                           int             disable );
85
86void tr_peerMgrTorrentAvailability( const tr_peerMgr * manager,
87                                    const uint8_t    * torrentHash,
88                                    int8_t           * tab,
89                                    int                tabCount );
90
91void tr_peerMgrTorrentStats( const tr_peerMgr * manager,
92                             const uint8_t    * torrentHash,
93                             int              * setmePeersTotal,
94                             int              * setmePeersConnected,
95                             int              * setmePeersSendingToUs,
96                             int              * setmePeersGettingFromUs,
97                             int              * setmePeersFrom ); /* <-- array of TR_PEER_FROM__MAX */
98
99struct tr_peer_stat * tr_peerMgrPeerStats( const tr_peerMgr  * manager,
100                                           const uint8_t     * torrentHash,
101                                           int               * setmeCount );
102
103
104
105
106
107#endif
Note: See TracBrowser for help on using the repository browser.