source: trunk/libtransmission/announcer.h @ 11709

Last change on this file since 11709 was 11709, checked in by jordan, 10 years ago

Update the copyright year in the source code comments.

The Berne Convention says that the copyright year is moot, so instead of adding another year to each file as in previous years, I've removed the year altogether from the source code comments in libtransmission, gtk, qt, utils, daemon, and cli.

Juliusz's copyright notice in tr-dht and Johannes' copyright notice in tr-lpd have been left alone; it didn't seem appropriate to modify them.

  • Property svn:keywords set to Date Rev Author Id
File size: 2.9 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: announcer.h 11709 2011-01-19 13:48:47Z jordan $
11 */
12
13#ifndef __TRANSMISSION__
14#error only libtransmission should #include this header.
15#endif
16
17#ifndef _TR_ANNOUNCER_H_
18#define _TR_ANNOUNCER_H_
19
20#include "transmission.h"
21
22struct tr_announcer;
23struct tr_torrent_tiers;
24
25/**
26 * ***  Tracker Publish / Subscribe
27 * **/
28
29typedef enum
30{
31    TR_TRACKER_WARNING,
32    TR_TRACKER_ERROR,
33    TR_TRACKER_ERROR_CLEAR,
34    TR_TRACKER_PEERS
35}
36TrackerEventType;
37
38/** @brief Notification object to tell listeners about announce or scrape occurences */
39typedef struct
40{
41    /* what type of event this is */
42    TrackerEventType    messageType;
43
44    /* for TR_TRACKER_WARNING and TR_TRACKER_ERROR */
45    const char * text;
46    const char * tracker;
47
48    /* for TR_TRACKER_PEERS */
49    const uint8_t *  compact;
50    int              compactLen;
51
52    /* [0...100] for probability a peer is a seed. calculated by the leecher/seeder ratio */
53    int8_t           seedProbability;
54}
55tr_tracker_event;
56
57typedef void tr_tracker_callback ( tr_torrent              * tor,
58                                   const tr_tracker_event  * event,
59                                   void                    * client_data );
60
61/**
62***  Session ctor/dtor
63**/
64
65void tr_announcerInit( tr_session * );
66
67void tr_announcerClose( tr_session * );
68
69/**
70***  For torrent customers
71**/
72
73struct tr_torrent_tiers * tr_announcerAddTorrent( struct tr_announcer *,
74                                                  tr_torrent          * torrent,
75                                                  tr_tracker_callback * cb,
76                                                  void                * cbdata );
77
78tr_bool tr_announcerHasBacklog( const struct tr_announcer * );
79
80void tr_announcerResetTorrent( struct tr_announcer*, tr_torrent* );
81
82void tr_announcerRemoveTorrent( struct tr_announcer * ,
83                                tr_torrent          * );
84
85void tr_announcerChangeMyPort( tr_torrent * );
86
87tr_bool tr_announcerCanManualAnnounce( const tr_torrent * );
88
89void tr_announcerManualAnnounce( tr_torrent * );
90
91void tr_announcerTorrentStarted( tr_torrent * );
92void tr_announcerTorrentStopped( tr_torrent * );
93void tr_announcerTorrentCompleted( tr_torrent * );
94
95enum { TR_ANN_UP, TR_ANN_DOWN, TR_ANN_CORRUPT };
96void tr_announcerAddBytes( tr_torrent *, int up_down_or_corrupt, uint32_t byteCount );
97
98time_t tr_announcerNextManualAnnounce( const tr_torrent * );
99
100tr_tracker_stat * tr_announcerStats( const tr_torrent * torrent,
101                                     int              * setmeTrackerCount );
102
103void tr_announcerStatsFree( tr_tracker_stat * trackers,
104                            int               trackerCount );
105
106
107#endif /* _TR_ANNOUNCER_H_ */
Note: See TracBrowser for help on using the repository browser.