source: trunk/libtransmission/peer-msgs.h @ 14083

Last change on this file since 14083 was 14083, checked in by jordan, 9 years ago

(trunk, libT) fix tr_torrentStat() regression in the nightlies reported in #5294 by mw3demo

  • Property svn:keywords set to Date Rev Author Id
File size: 3.5 KB
Line 
1/*
2 * This file Copyright (C) Mnemosyne LLC
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-msgs.h 14083 2013-05-27 21:04:48Z jordan $
11 */
12
13#ifndef __TRANSMISSION__
14 #error only libtransmission should #include this header.
15#endif
16
17#ifndef TR_PEER_MSGS_H
18#define TR_PEER_MSGS_H
19
20#include <inttypes.h>
21#include "peer-common.h"
22
23struct tr_address;
24struct tr_bitfield;
25struct tr_peer;
26struct tr_peerIo;
27struct tr_torrent;
28
29/**
30 * @addtogroup peers Peers
31 * @{
32 */
33
34typedef struct tr_peerMsgs tr_peerMsgs;
35
36#define PEER_MSGS(o) (tr_peerMsgsCast(o))
37
38bool         tr_isPeerMsgs                   (const void               * msgs);
39
40tr_peerMsgs* tr_peerMsgsCast                 (void                     * msgs);
41
42tr_peerMsgs* tr_peerMsgsNew                  (struct tr_torrent        * torrent,
43                                              struct tr_peerIo         * io,
44                                              tr_peer_callback         * callback,
45                                              void                     * callback_data);
46
47bool         tr_peerMsgsIsPeerChoked         (const tr_peerMsgs        * msgs);
48
49bool         tr_peerMsgsIsPeerInterested     (const tr_peerMsgs        * msgs);
50
51bool         tr_peerMsgsIsClientChoked       (const tr_peerMsgs        * msgs);
52
53bool         tr_peerMsgsIsClientInterested   (const tr_peerMsgs        * msgs);
54
55bool         tr_peerMsgsIsActive             (const tr_peerMsgs        * msgs,
56                                              tr_direction               direction);
57
58void         tr_peerMsgsUpdateActive         (tr_peerMsgs              * msgs,
59                                              tr_direction               direction);
60
61time_t       tr_peerMsgsGetConnectionAge     (const tr_peerMsgs        * msgs);
62
63bool         tr_peerMsgsIsUtpConnection      (const tr_peerMsgs        * msgs);
64
65bool         tr_peerMsgsIsEncrypted          (const tr_peerMsgs        * msgs);
66
67bool         tr_peerMsgsIsIncomingConnection (const tr_peerMsgs        * msgs);
68
69void         tr_peerMsgsSetChoke             (tr_peerMsgs              * msgs,
70                                              bool                       peerIsChoked);
71
72int          tr_peerMsgsIsReadingBlock       (const tr_peerMsgs        * msgs,
73                                              tr_block_index_t           block);
74
75void         tr_peerMsgsSetInterested        (tr_peerMsgs              * msgs,
76                                              bool                       clientIsInterested);
77
78void         tr_peerMsgsHave                 (tr_peerMsgs              * msgs,
79                                              uint32_t                   pieceIndex);
80
81void         tr_peerMsgsPulse                (tr_peerMsgs              * msgs);
82
83void         tr_peerMsgsCancel               (tr_peerMsgs              * msgs,
84                                              tr_block_index_t           block);
85
86size_t       tr_generateAllowedSet           (tr_piece_index_t         * setmePieces,
87                                              size_t                     desiredSetSize,
88                                              size_t                     pieceCount,
89                                              const uint8_t            * infohash,
90                                              const struct tr_address  * addr);
91
92
93/* @} */
94#endif
Note: See TracBrowser for help on using the repository browser.