source: trunk/libtransmission/peer-msgs.h

Last change on this file was 14724, checked in by jordan, 5 years ago

use '#pragma once' instead of #ifndef..#define..#endif guards

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